Sorting Railway Cars

CodeForces - 605A

一辆列车有N节车厢,编号为1...N(每节车厢编号都不同),并且他们的排列是混乱的。李老湿想要把这N节车厢重新排列为升序排列,每次调整他可以挑出一节车厢放在车头或者车尾。可是李老湿太懒了,所以他想知道最少需要调整多少次就可以完成重新排列!为了解决这个问题,李老湿决定求助学弟们。

Input

第一行:一个整数N( 1<=N<=100000) 表示列车的车厢数

第二行:N个整数pi( 1<=pi<=n,   pi ≠ pj if i ≠ j)表示给定的车厢排列

Output

输出一个整数:最少的操作。

Examples

Input
5
4 1 2 5 3
Output
2
Input
4
4 1 3 2
Output
2

sol:好无趣的结论题啊,一开始想错了,以为是找到最长上升子序列,然后被这组数据hack了
input

output

然后发现是要找到最长的连续上升子序列。。。


#include <bits/stdc++.h>
using namespace std;
typedef int ll;
inline ll read()
{
ll s=;
bool f=;
char ch=' ';
while(!isdigit(ch))
{
f|=(ch=='-'); ch=getchar();
}
while(isdigit(ch))
{
s=(s<<)+(s<<)+(ch^); ch=getchar();
}
return (f)?(-s):(s);
}
#define R(x) x=read()
inline void write(ll x)
{
if(x<)
{
putchar('-'); x=-x;
}
if(x<)
{
putchar(x+''); return;
}
write(x/);
putchar((x%)+'');
return;
}
#define W(x) write(x),putchar(' ')
#define Wl(x) write(x),putchar('\n')
const int N=;
int n,a[N],dp[N];
int main()
{
int i,ans=;
R(n);
for(i=;i<=n;i++) R(a[i]);
for(i=;i<=n;i++)
{
dp[a[i]]=dp[a[i]-]+;
ans=max(ans,dp[a[i]]);
}
Wl(n-ans);
return ;
}
/*
Input
5
4 1 2 5 3
Output
2 Input
4
4 1 3 2
Output
2 input
7
1 3 5 7 2 4 6
output
5
*/

 

codeforces605A的更多相关文章

随机推荐

  1. python文件流

    打开文件 文件的基本方法 迭代文件内容 打开文件 打开文件,可以使用自动导入的模块io中的函数open.函数open将文件名作为唯一必不可少的参数,并返回一个文件对象.如果只指定一个文件名,则获得一个 ...

  2. LDAP1-安装部署LDAP服务

    基于Linux部署openldap服务 参考文档: https://blog.csdn.net/computer1024/article/details/78172785 参考文档:  https:/ ...

  3. SQL Server 分析函数和排名函数

    分析函数基于分组,计算分组内数据的聚合值,经常会和窗口函数OVER()一起使用,使用分析函数可以很方便地计算同比和环比,获得中位数,获得分组的最大值和最小值.分析函数和聚合函数不同,不需要GROUP ...

  4. Django之连接多个数据库的相关配置

    01-修改django默认的数据库 # settings.py DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NA ...

  5. Python Revisited Day 03 (组合数据类型)

    目录 第三章 组合数据类型 3.1 序列类型 3.1.1 元组 3.1.2 命名的元组 (collections.nametuple()) 3.1.3 列表 (查询有关函数点这) 3.1.4 列表内涵 ...

  6. Python学习第十二篇——切片的使用

    Python中使用函数切片可以创建副本,保留原本.现在给出如下代码 magicians_list = ['mole','jack','lucy'] new_lists = [] def make_gr ...

  7. js中的join(),reverse()与 split()函数用法解析

    <script> /* * 1:arrayObject.reverse() * 注意: 该方法会改变原来的数组,而不会创建新的数组.此函数可以将数组倒序排列 * 2:arrayObject ...

  8. MongoDB Redis

    MongoDB Redis设置用户名密码了吗?看看shodan这款邪恶的搜索引擎吧!~   早上看新闻的时候看到了个醒目的新闻 开源中国:MongoDB 赎金事件持续发酵,究竟是谁之过?博客园:Mon ...

  9. tomcat7 server.xml max thread

    java - Tomcat - maxThreads vs maxConnections - Stack Overflowhttps://stackoverflow.com/questions/246 ...

  10. js 翻牌活动效果

    直接上代码 html: <div class="index_main"> <ul class="index_card"> <li ...