LIS
2015-11-26 13:15
274 查看
LIS(最长上升子序列,poj2533)
子问题:dp[k] :a[k]为结尾的最长上升子序列 dp[k] = for(i = 0 : k-1) dp[k] = max(dp[k], dp[i] + 1) ;初始化 : for(i = 0 : n - 1) dp[i] = 1 ;
#include<iostream> #include<cstdio> #include<cstdlib> #include<algorithm> #include<cstring> #define FOR(i, x, y) for(int i = x; i <= y; i ++) #define FORD(i, y, x) for(int i = y; i >= x; i --) #define mset(x, v) memset(x, v, sizeof(x)) #define maxn 1050 using namespace std; int a[maxn], dp[maxn]; int main() { int n, maxlen; while(scanf("%d", &n) != EOF){ mset(dp, 0); FOR(i, 0, n - 1){ scanf("%d", &a[i]); maxlen = 0; FOR(j, 0, i - 1) if(a[i] > a[j]) maxlen = maxlen > dp[j] ? maxlen : dp[j]; dp[i] = maxlen + 1; } maxlen = dp[0]; // FOR(i, 0, n - 1) printf("%d ", dp[i]); FOR(i, 0, n - 1) if(maxlen < dp[i]) maxlen = dp[i]; printf("%d\n", maxlen); } return 0; }
相关文章推荐
- 使用PhotoShop制作gif动画全过程
- 工作学习小记—如何将多个.a静态库合并成一个.a静态库
- 小米手柄体验
- jQuery在web项目中增删改查的应用
- HTML5应用中accordion三种效果的探索
- release版调用ffmpeg出错
- 数据结构实验之图论四:迷宫探索
- css盒模型margin折叠问题解决方案总结
- Swift:自定义UITableViewCell背景色
- 华为OJ基础篇-字符串加密
- shiro简单配置
- 显示文件后缀名
- STM32正交编码器驱动电机
- 创业不难 关键在于坚持
- 软件设计度量工具structure101学习(一):structure101试用版licence的获取以及众多的structure101系列工具
- 使用Shell脚本实现NFS挂载自动切换
- PEP8 Python 编码规范
- UI基础整理-3
- 关于cocos2dx的背景音乐和音效(1)
- 空中网多线程面试题