51nod 1241:特殊的排序
2017-04-17 11:59
225 查看
[b]51nod 1241:特殊的排序[/b]
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1241
题目大意:给出$n$个数($1 \leqslant a_i \leqslant n$),现在要对这个数组进行排序,在排序时只能将元素放在数组的头部或尾部,问至少需要移动多少个数字,才能完成整个排序过程?
DP
显然最少操作数等于$n-|$最长连续子序列$|$.
故定义状态:$dp[i]$表示以$i$结尾的连续子序列长度.
转移方程:$dp[i]=dp[i-1]+1$.
代码如下:
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1241
题目大意:给出$n$个数($1 \leqslant a_i \leqslant n$),现在要对这个数组进行排序,在排序时只能将元素放在数组的头部或尾部,问至少需要移动多少个数字,才能完成整个排序过程?
DP
显然最少操作数等于$n-|$最长连续子序列$|$.
故定义状态:$dp[i]$表示以$i$结尾的连续子序列长度.
转移方程:$dp[i]=dp[i-1]+1$.
代码如下:
#include <iostream> #define N 50005 using namespace std; int n,t,dp ,ans; int main(void){ std::ios::sync_with_stdio(false); cin>>n; for(int i=0;i<n;++i){ cin>>t; dp[t]=dp[t-1]+1; ans=max(ans,dp[t]); } cout<<n-ans; }
相关文章推荐
- 51nod 1241 特殊的排序
- 51Nod - 1241 特殊的排序(求最长连续递增子序列)
- 51nod-1241 特殊的排序
- [贪心 DP] 51Nod 1241 特殊的排序
- 51nod 1241 特殊的排序(DP_找最长等差数列)
- 51Nod-1241-特殊的排序
- 51nod 1241 特殊的排序 最少移动次数
- 51Nod 1241 特殊的排序
- 【贪心】51Nod 1241 特殊的排序
- 51nod 1241:特殊的排序
- 【51Nod 1241】特殊的排序
- 51Nod 1241 特殊的排序
- 51nod 1241 特殊的排序(锻炼思维的好题)
- 51 nod 1241 特殊的排序(思维)@
- 1241 特殊的排序
- 51nod oj 1241 特殊的排序 【排序之贪心】
- 51Nod 1241
- 51nod 2020 排序相减
- 字符串排序,特殊字符位置不变
- 题目3:特殊排序