动态规划 LIS
2017-03-05 22:51
183 查看
求连续最长子序列
#include <iostream> using namespace std; const int maxn = 1000+10; int count[maxn],arr[maxn]; int main() { int n,ans = 0; cin >> n;//原序列的长度 for(int i = 0;i < n;i++) { count[i] = 1;//将到达计数数组置1,相当于他们本身的序列 cin >> arr[i];//读入要求子序列的数组数据 } for(int i = 2;i < n;i++) { int max = count[0]; for(int j = 0;j <= i - 1;j++) { if(arr[j] < arr[i] && count[j] > max) { max = count[j];//两个条件:首先满足上升,其次是求最长,即if判断中的判断 } count[i] = max + 1;//加上本身,构成连续上升子序列 } if(ans < count[i]) ans = count[i]; } cout << ans << endl; return 0; }
相关文章推荐
- 动态规划---LIS
- POJ2533:Longest Ordered Subsequence(LIS) 动态规划
- 动态规划——最长公共子序列(LCS)&最长递增子序列(LIS)
- POJ3670 Eating Together 【动态规划】【LIS模板】
- 动态规划--LIS与LCS
- codevs 1058 合唱队形 (动态规划 & LIS)
- hdu 1677 Nested Dolls LIS + 动态规划
- 【动态规划】最长上升子序列(LIS)
- POJ_1631_Bridging_Signals_(动态规划,LIS)
- 【转载】动态规划--最长上升子序列(LIS)
- 动态规划---LIS
- 最少拦截系统-动态规划LIS
- 【动态规划】Move ahead, 初级, LIS 程序完成
- 最长递增子序列(LIS)-动态规划
- 动态规划-最长上升子序列LIS
- 【动态规划】最长上升子序列(LIS)
- 动态规划 —— 最长递增子序列(LIS)
- 【动态规划基础篇】【矩阵取数/最大字段和/最长公共子序列(LCS)/编辑距离/最长上升子序列(LIS)】
- 算法系列笔记6(动态规划—最长公共子序列/串lcs和最长递增子序列(LIS))
- 动态规划-求LIS和时间优化