1197. CMI

news/2024/10/26 15:15:42/

Description

给出一个1到n的排列,每次可以移动一个数到任意一个位置(第一个数前,最后一个数后或者两个数之间的位置)。问要达到状态1; 2; 3⋯⋯n至少移动多少次?

Input

第一行一个正整数N。
第二行N个整数,表示一个1到n的排列。

Output

在第一行输出最少的移动次数。

Sample Input

5
2 1 4 5 3

Sample Output

2

Data Constraint

Hint

数据范围
在50%的数据中,1<=N<=5000
在100%的数据中,1<=N<=200000

Solution

因为每个数可以移动到任意位置,首先对于一个序列最多移动n-1次,我们考虑在什们情况下要移动n-1次,显然是这个序列从n到1排列时。

最先想到如果我希望用最小的移动次数是这个序列有序,那么肯定是移动那些不在相对位置上的那些数,

再想想,

意思就是,

保留那些相对位置递增的数。

那么我们要求的就是最多的递增的数。

那不就是最长不下降子序列吗?

最后得出结论,答案=n-最长不下降子序列的长度。

Code

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define I int
#define N 200010
#define F(i,a,b) for(I i=a;i<=b;i++)
#define Fd(i,a,b) for(I i=a;i>=b;i--)
#define open(x) freopen(x".in","r",stdin);freopen(x".out","w",stdout);
using namespace std;
I rd(){I x=0;char ch=getchar();while(ch<'0'||ch>'9') ch=getchar();while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x;
}
I n,f[N],len,l,r,mid,k,a[N];
I main(){open("CMI");n=rd();F(i,1,n) a[i]=rd();f[len=1]=a[1];F(i,2,n){if(a[i]>f[len]) f[++len]=a[i];else{l=1,r=len,k=0;while(l<=r){mid=(l+r)>>1;if(f[mid]<a[i]) l=mid+1;else{k=mid;r=mid-1;}}f[k]=a[i];}}printf("%d\n",n-len);return 0;
}


作者:zsjzliziyang 
QQ:1634151125 
转载及修改请注明 
本文地址:https://blog.csdn.net/zsjzliziyang/article/details/99610930


http://www.ppmy.cn/news/536891.html

相关文章

cmu15445 2023spring project01

Project #0 - C Primer 资源 课程主页 Bustub Github 在线测试网站 (Entry Code: 2KJRB5)&#xff0c; 注意用外国大学以及gmail注册。 lab0资源 我的lab0实现&#xff0c;入门实现有困难的同学可以参考一下。 Backgroud 环境 我的是Ubuntu 9.4.0 vscode 语法 需要了解…

CMIP6入门 CMIP数据信息

CMIP6入门 最近学习CMIP6&#xff0c;一些有关CMIP6的入门资料在此分享。 1.相关文献 《第六次国际耦合模式比较计划&#xff08;CMIP6&#xff09;评述》周天军 链接: http://www.climatechange.cn/CN/10.12006/j.issn.1673-1719.2019.193 这篇文章介绍了CMIP的发展历程&…

CMU-15-445 lecture01

Database:对现实世界一些事物建模的、具有内部联系的数据。 Database Management System(DBMS):管理数据库的软件&#xff0c;早期的DBMS逻辑层和物理层高度耦合。 Data Model&#xff1a;描述数据库中数据形式的模型 Relational Model&#xff1a;SQLKey/Value、Graph、Doc…

苹果固件验证关闭服务器时间,大神展示苹果设备降级工具:恢复关闭验证固件...

iOS越狱开发者tihmstar宣布即将发布一款新的工具Prometheus(普罗米修斯&#xff0c;“偷火者”)&#xff0c;他宣称这款工具支持苹果64位iOS设备升级或降级到任何固件&#xff0c;即使是关闭验证的固件版本。 如果这款工具正如他所说&#xff0c;那么这对越狱社区确实是大有用处…

iPAD越狱后下载破解版的pad软件方法总录

声明&#xff1a;本文所说的安装软件方法都不是原创&#xff0c;都是前人的经验&#xff0c;只不过为了方便大家&#xff0c;做一个整理。 一、事前的准备工作 1、还是先说越狱&#xff0c;网上越狱的方法不止一种&#xff0c;建议按照下文操作办法&#xff08;在ipad上操作&am…

科技大牛专业详解 苹果iOS 史上最大漏洞

苹果猝不及防地发布了 iOS 9.3.5&#xff0c;在升级说明中&#xff0c;有且只有一条&#xff1a;提供了重要的安全性更新&#xff0c;推荐所有用户安装。 没想到&#xff0c;这次低调的升级却牵出了 iOS 历史上最大的漏洞。 先科普一下&#xff0c;iOS 的安全级别大致分为应用层…

怎么能跳过苹果服务器降级系统,iPhone手机可以降级任意系统版本?大神有话说...

原标题:iPhone手机可以降级任意系统版本?大神有话说 说到iPhone手机降级这话题,我相信每位果粉都是很激动的,为什么激动呢?因为iPhone5以上手机只要系统验证关闭了你已升级,意味着就永久不能返回之前系统版本了。最近比较火的降级大神发话了,该大神简称:“tihmstar”宣…

iphone修改app名称_ios软件如何改名字 苹果手机怎么修改软件的图标名称呢

iPhone原生的iOS系统不支持修改图标ID,需要越狱后安装插件icon renamer实现。 1、将iPhone越狱,依据iOS系统不同选择相应越狱工具: iOS4-4.3.3 JailbreakMe(games.cntv.cn/2011/jiaocheng_1129/64548.shtml) 2、越狱完成后,打开Cydia商店,点击搜索icon renamer,安装。 3、…