CODE(VS) 1044 导弹拦截 (判断最长递增和最长递减子序列)
来源:互联网 发布:股票持仓软件 编辑:程序博客网 时间:2024/05/29 03:16
这道题和别的不同的是:这次不仅要求出最长递减子序列,还有求出有几个子序列,不是最长递减子序列,那么怎么求有几个最长递减子序列呢?可以转化为求最长递增子序列,如果一个序列他的最长递增子序列为n,那他就一定有n个递减子序列,例如:389 207 155 300 299 170 158 65 ,他的一个最长递增子序列为 155 300, 那么他两个肯定不可能在同一个递减子序列中,如果在一个递减子序列中,那这个子序列就不在是递减子序列了。
下面附上代码:
#include<stdio.h>#include<algorithm>#include<iostream>#include<string.h>using namespace std;int main(){ int a[30], dp1[30], dp2[30], i = 0, ans1 = 0, ans2 = 0; while(cin>>a[i]) { int max1 = 0, max2 = 0; dp1[i] = 1; dp2[i] = 1; for(int j = 0; j < i; j++) { if(a[i] < a[j] && dp1[j] > max1) // 最长递减子序列 max1 = dp1[j]; if(a[i] > a[j] && dp2[j] > max2) // 最长递增子序列 max2 = dp2[j]; } dp1[i] = max1+1; dp2[i] = max2+1; ans1 = max(dp1[i], ans1); ans2 = max(dp2[i], ans2); i++; } printf("%d\n%d\n", ans1, ans2);}
1 0
- CODE(VS) 1044 导弹拦截 (判断最长递增和最长递减子序列)
- code[vs] 1044拦截导弹(最长递减+递增子序列)
- 最长递增子序列(导弹拦截)
- 最长递增子序列(导弹拦截)
- 导弹拦截 最长递减(增)子序列问题
- NYOj-79-拦截导弹(最长递减子序列)
- NYOJ 79 拦截导弹 (寻找递减最长子序列)
- NYOJ题目79-拦截导弹(最长递减子序列)
- 【最长递增子序列】 导弹拦截系统
- 拦截导弹-最长递增子序列LIS
- 题目1112:拦截导弹 最长递增子序列(LIS)
- NYOJ79 拦截导弹(最长单调递减子序列)
- 最长递增(递减)子序列
- 最长递增/递减子序列
- nyoj 79 拦截导弹 【最长递增子序列】
- CDOJ 251 导弹拦截 最长递增子序列
- NYOJ 题目79 拦截导弹 (dp,最长单调递减子序列)
- nyoj 79 拦截导弹 连续递减最长子序列(动态规划)
- 刷新android中的媒体库
- MongoDB 3.2.x 集群
- 这5个newsletter,设计师们可能想要放在收件箱
- uva 165 Stamps
- dsfsadf
- CODE(VS) 1044 导弹拦截 (判断最长递增和最长递减子序列)
- 15-面试题
- bzoj4723
- 数据结构::矩阵(一)--对称矩阵及对称矩阵的压缩存储
- Android基础----Spanner(下拉列表)
- spring依赖注入
- iOS开发ARC内存管理技术要点
- 字符串反转,单词反转
- 在浏览器地址栏按回车、F5、Ctrl+F5刷新网页的区别