codeforce 606C Sorting Railway Cars
2016-04-11 22:11
615 查看
原题地址
题意
有一节火车,共N节车厢,编号1-N,提供两个操作:
1.把任意位置一节车厢移到车头位置;
2.把任意位置一节车厢移到车尾位置;
问最少的移动次数使得序列升序排列
题解
开始以为是最长升序子序列,大喜过望,WA21……
不是升序子序列,而是严格单增1的子序列
为什么不是升序子序列呢,因为移动只能移动到首尾,不能插入,导致形如1 3 2 4这样的序列是不可以用4-3=1次完成升序化的
为什么严格单增1的子序列可以呢,只要把错位的元素按照大小关系依次移动到首尾就好
应该移动到首部的元素从大到小移动,应该移动到尾部的元素从小到大移动
下面是卿神的代码,明显比我的好啊……
题意
有一节火车,共N节车厢,编号1-N,提供两个操作:
1.把任意位置一节车厢移到车头位置;
2.把任意位置一节车厢移到车尾位置;
问最少的移动次数使得序列升序排列
题解
开始以为是最长升序子序列,大喜过望,WA21……
不是升序子序列,而是严格单增1的子序列
为什么不是升序子序列呢,因为移动只能移动到首尾,不能插入,导致形如1 3 2 4这样的序列是不可以用4-3=1次完成升序化的
为什么严格单增1的子序列可以呢,只要把错位的元素按照大小关系依次移动到首尾就好
应该移动到首部的元素从大到小移动,应该移动到尾部的元素从小到大移动
#include<bits/stdc++.h> using namespace std; const int maxn=1e6; const int inf=1e9; int arr[maxn+5]; int dp[maxn+5]; int g[maxn+5]; int main(void) { #ifdef ex1 freopen ("in.txt","r",stdin); #endif int n; scanf("%d",&n); for (int i=1;i<=n;++i) { scanf("%d",&arr[i]); g[arr[i]]=i; } for (int i=1;i<=n;++i) { //g[i]=inf; dp[i]=1; } int ans=0; for (int i=1;i<=n;++i) { if (g[arr[i]]>g[arr[i]-1]) { dp[arr[i]]=dp[arr[i]-1]+1; } ans=max(ans,dp[arr[i]]); //cout<<dp[i]<<endl; } printf("%d\n",n-ans); }
下面是卿神的代码,明显比我的好啊……
#include<iostream> #include<cstring> #include<vector> #include<algorithm> #include<cstdio> using namespace std; int dp[100005]; int a[100005]; int main() { int n; cin>>n; for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=1;i<=n;i++) dp[a[i]]=dp[a[i]-1]+1; int flag = 0; for(int i=1;i<=n;i++) flag = max(flag,dp[i]); cout<<n-flag<<endl; }
相关文章推荐
- 赋予人工智能记忆的人,带你梳理深度学习核心算法
- Codeforces Beta Round #8 A. Train and Peter KMP
- Aizu 0189 Convenient Location【floyd】
- Component SAP_GWFND is locked against OCS package
- 山东省第一届ACM省赛 I SDUT 2159 Ivan comes again!(STL-set)
- 山东省第一届ACM省赛 F SDUT 2156 Fairy tale
- Mybaits 批量操作
- 多级导航,转自http://blog.csdn.net/rabbitter/article/details/51125337
- Aizu 2170 Marked Ancestor【并查集】
- 我离baidu.com有几跳
- Main
- MainHome
- Main
- VolleyAir
- lightoj 1076 - Get the Containers 二分答案
- nrf51822 --- 配对绑定输入密码(pair)
- [INSTALL_FAILED_OLDER_SDK]错误
- iPhone:constrainedToSize获取字符串的宽高
- iPhone:constrainedToSize获取字符串的宽高
- contrail 3.0 vcenter_compute安装出现问题