codeforces335 div1 Sorting Railway Cars

来源:互联网 发布:淘宝发送宝贝链接 编辑:程序博客网 时间:2024/06/15 12:43

题意:给你一个数列是1-n的数,让你最终让他们有序排列,你每次只能移动一个数到数列的头部或者尾部。问你最少需要移动几次。


开始还没有明白这个题是考的什么知识点,后来才发现就是考一个连续的子序列问题,最后用总数减去最长的序列就可以了。还是做题太少,别人一眼就看出来了。大哭大哭大哭

#include<bits/stdc++.h>using namespace std;int main(){    int n;    while(~scanf("%d",&n))    {        int a[100005];        for(int i=0;i<n;i++)        {            int x;            scanf("%d",&x);            a[x-1]=i;        }        int cur=1,ans=1;        for(int i=1;i<n;i++)        {            if(a[i]>a[i-1])                cur++;            else                cur=1;            ans=max(ans,cur);        }        printf("%d\n",n-ans);    }}




0 0