动态规划 之 最长上升序列
2014-08-30 11:51
309 查看
/* #include <iostream> using namespace std; const int m_size = 40010; int arr[m_size],opt[m_size]; void dp(const int &n) { int i,j,max; opt[1] = 1; for(i=2;i<=n;i++) { max = 0; for(j=i-1;j>0;j--) { if(arr[j]<arr[i] && max<opt[j]) max = opt[j]; }// 找最大的 opt[i] = max + 1; } } void print_max(const int &n) { int i; int max = 0; for(i=1;i<=n;i++) { if(max<opt[i]) max = opt[i]; }//找最大的 cout << max << "***" << endl; } int main() { int tcase,n,i; cin >> tcase; while(tcase--) { cin >> n; for(i=1;i<=n;i++) cin >> arr[i]; dp(n); print_max(n); } return 0; } */
这是dp中入门简单题,但是说它经典是由于作为dp的教材案例了。
相关文章推荐
- 动态规划 最长公共子序列 最长上升子序列 最长上升公共子序列
- 动态规划 最长上升(下降)子序列 SDNUOJ 1040 导弹拦截和最少拦截系统
- 动态规划 多重部分和 最长上升子序列 划分数 多重集组合数
- 动态规划——最长上升子序列问题(LIS)
- 动态规划:最长上升子序列之基础(经典算法 n^2)
- 动态规划之最长上升子序列 O(N log N)版
- 动态规划之最大公共序列+最长上升子序列
- 动态规划之最长上升子序列 HDU1950
- 两道基础动态规划poj1458最长公共子序列和poj2533最长上升序列
- 最长上升非降子序列的长度动态规划
- 动态规划之最长上升自序列问题
- 经典动态规划问题--最长上升子序列 POJ--2533
- 动态规划:最长上升子序列(二分算法 nlogn)
- 动态规划---最长上升子序列问题(O(nlogn),O(n^2))
- 动态规划---最长上升子序列问题(O(nlogn),O(n^2))
- 动态规划---求最长公共字符序列
- 动态规划——最长升序子序列
- 动态规划 - 最长公共子序列 - 最长公共子串 - 最长不重复子串 - 最长递增子序列 - 最长回文子串
- 初识动态规划-最长不上升子序列
- 动态规划:最长子序列问题