[CodeForces]605A Sorting Railway Cars

贪心水题。
思路:将原排列弄成有序数列的最少操作,转化一下思维就是不用操作的最多数字。
LIS?
不止。
如 1 2 4 5 3,ans=2,但n-lis=1
所以要求的是连续的lis。
O(n)求连续lis:做一个类似桶(?)的东西,递推一下即可,看一下代码就懂了。。

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;
int n,a[100005],b[100005],ans;
int main() {
	scanf("%d",&n);
	for(int i=1;i<=n;i++) 
            scanf("%d",&a[i]),
            b[a[i]]=b[a[i]-1]+1,
            ans=max(ans,b[a[i]]);
	cout<<n-ans;
}
我是咸鱼。转载博客请征得博主同意Orz
原文地址:https://www.cnblogs.com/sdfzhsz/p/9319449.html