【LIS】【dp[i] 表示长度为i时候的最小值】
2015-08-04 20:29
295 查看
#include <stack> #include <list> #include <map> #include <set> #include <string> #include <cstdlib> #include <cstdio> #include <algorithm> using namespace std; int a[10] = {0,1,5,2,6,9}; int dp[20]; // dp[i] 表示长度为i的最值 int main() { memset(dp,0x3f3f3f3f,sizeof(dp)); dp[0] = -0x3f3f3f3f; for(int i=1;i<=5;i++) { for(int j=i;j>0;j--) { if(dp[j-1] < a[i]) { dp[j] = min(dp[j],a[i]); } } } for(int j=10;j>0;j--) { if(dp[j] != 0x3f3f3f3f) { cout << j << endl; break; } } return 0; }
相关文章推荐
- zoj 题目分类
- 【BZOJ 2154】Crash的数字表格
- 《高质量程序设计指南C/C++语言 》 林锐,韩永泉编著 总结1
- OpenGL ES 剪裁
- 页面呈现-文字修饰
- Browser caching
- 【HDU1520】【Anniversary party】
- 【数位dp】
- 数据类型范围【常识性编码知识】
- Mysql在大型网站的应用架构演变
- Spring基于 Annotation 的简单介绍
- 【数字加减】
- 【HDU1513】【Palindrome】
- 杀死指定的一个shell脚本
- C语言编程入门——综合练习(四)上机考试题
- Python日期时间Date/Time
- JAVA同步机制中用到的锁的思想
- 最大似然估计法
- 剑指Offer面试题24(Java版):二叉搜索树的后序遍历序列
- 回调函数和发消息的作用比较