最大上升子序列
2017-03-04 08:37
197 查看
dp[i]表示以i元素结尾的最大上升子序列的元素个数=状态 dp[i]=max(dp[i],dp[j]|j<i&&a[j]<a[i])=状态转移方程 //解释就是找i前面的最大的dp[j]并且j元素小于i元素 //复杂度n^2
//模板 for(int i=1;i<=T;i++){ dp[i]=1; for(int j=i-1;j>0;j--) if(a[j]<a[i]) dp[i]=max(dp[i],dp[j]+1); }
#include<iostream> #include<cstdio> #include<algorithm> using namespace std; const int maxn=10000; int a[maxn]; int dp[maxn]; int main(){ int T;cin>>T; for(int i=1;i<=T;i++) cin>>a[i]; for(int i=1;i<=T;i++){ dp[i]=1; for(int j=i-1;j>0;j--) if(a[j]<a[i]) dp[i]=max(dp[i],dp[j]+1); } cout<<*max_element(dp+1,dp+T+1)<<endl; return 0; }
另:dp + 二分 复杂度O(nlogn)
相关文章推荐
- HDU 1087 Super Jumping! Jumping! Jumping! (线性dp 最大上升子序列)
- POJ 3616 Milking Time(基础DP,最大上升子序列和变形)
- 北大-最大上升子序列和
- ACM-动态规划13-最大上升子序列和
- 动态规划:最大上升子序列和
- 最大上升子序列和
- HDU1087(最大上升子序列)
- hdu 1087 Super Jumping! Jumping! Jumping!(最大上升子序列之和)
- 题目1480:最大上升子序列和
- hdu 1087 Super Jumping! Jumping! Jumping!(基础DP,最大上升子序列和)
- 九度OJ 1480 动态规划 最大上升子序列和
- HDU 1087 Super Jumping! Jumping! Jumping!(最大的上升子序列的和)(不是最长)(易混淆)
- 动态规划―最大上升子序列和
- Bishops Alliance—— 最大上升子序列
- 题目1480:最大上升子序列和
- Codeforces 629 D Finals in arithmetic(最大上升子序列和,O(nlogn)、线段树/树状数组)
- hdu 1087 (最大上升子序列和)动态规划
- 牛客网 D-YB要打炉石 最大上升子序列
- hdu 1160 FatMouse's Speed(最大上升子序列+路径输出)
- L2-014 列车调度(寻找最大上升子序列)