Codeforces Round #335 Sorting Railway Cars
2015-12-15 10:48
525 查看
题目链接:
http://www.codeforces.com/contest/606/problem/C
一道dp问题,我们可以考虑什么情况下移动,才能移动最少。很明显,除去需要移动的车,剩下的车,一定是相差为1的递增序列,而且这个序列一定也是最长的,例如4 1 2 5 3, 4 5是需要移动的,不移动的序列是1 2 3,所以我们只要求出这一最长的递增序列,用n去减就可以了。
dp[i]是以i为结尾,最长的递增序列,所以dp[i] = dp[i-1]+1,求最大即为所求结果。
http://www.codeforces.com/contest/606/problem/C
一道dp问题,我们可以考虑什么情况下移动,才能移动最少。很明显,除去需要移动的车,剩下的车,一定是相差为1的递增序列,而且这个序列一定也是最长的,例如4 1 2 5 3, 4 5是需要移动的,不移动的序列是1 2 3,所以我们只要求出这一最长的递增序列,用n去减就可以了。
dp[i]是以i为结尾,最长的递增序列,所以dp[i] = dp[i-1]+1,求最大即为所求结果。
#include<stdio.h> #include<algorithm> #define maxn 100005 using namespace std; int a[maxn],dp[maxn]; int main(){ int n; scanf("%d",&n); for(int i = 1;i<=n;i++){ scanf("%d",&a[i]); } int ans = 0; for(int i = 1;i<=n;i++){ dp[a[i]] = dp[a[i]-1]+1; ans = max(ans,dp[a[i]]); } printf("%d\n",n-ans) ; return 0; }
相关文章推荐
- poj 3250 Bad Hair Day (单调栈)
- EventBus的关键函数介绍
- sleep和wait有什么区别
- Daily Scrum 12.15
- Genimotion 解决 INSTALL_FAILED_CPU_ABI_INCOMPATIBLE问题
- libpng install failed
- Xsolla与Ubisoft游戏Rainbow Six Siege 和刺客信条:辛迪加展开战略合作
- Leetcode 11: Container With Most Water
- haokaixin a
- Daily Scrum 12.14
- git 设置 用户名和信箱
- Daily Scrum NO.5
- Waitkey函数的用法
- oc中几种属性特质:nonatomic,copy,retain等
- Daily Scrum - 12/14
- AIDL总结
- Codeforces Round #335 (Div. 2) C.Sorting Railway Cars
- leetcode Contains Duplicate II
- 【Beta】Daily Scrum Meeting第七次
- 【Beta】Daily Scrum Meeting第七次