hdu1087
2015-07-27 15:16
274 查看
最大递增子序列
#include <iostream>
#include <string>
#include <algorithm>
#include <cstdio>
#include <vector>
#include <map>
#include <iterator>
#include <cstring>
#include <cmath>
using namespace std;
int p[1005];
int dp[1005];
int main() {
int n;
while (cin>>n && n) {
memset(dp, 0, sizeof(dp));
for (int i = 0; i < n; i++) {
cin >> p[i];
dp[i] = p[i];
}
for (int i = 1; i < n; i++) {
for (int j = 0; j < i; j++) {
if (p[i] > p[j] && dp[i] < dp[j] + p[i])
dp[i] = dp[j] + p[i];
}
}
int sum = 0;
for (int i = 0; i < n; i++) if (sum < dp[i]) sum = dp[i];
cout << sum << endl;
}
return 0;
}
#include <iostream>
#include <string>
#include <algorithm>
#include <cstdio>
#include <vector>
#include <map>
#include <iterator>
#include <cstring>
#include <cmath>
using namespace std;
int p[1005];
int dp[1005];
int main() {
int n;
while (cin>>n && n) {
memset(dp, 0, sizeof(dp));
for (int i = 0; i < n; i++) {
cin >> p[i];
dp[i] = p[i];
}
for (int i = 1; i < n; i++) {
for (int j = 0; j < i; j++) {
if (p[i] > p[j] && dp[i] < dp[j] + p[i])
dp[i] = dp[j] + p[i];
}
}
int sum = 0;
for (int i = 0; i < n; i++) if (sum < dp[i]) sum = dp[i];
cout << sum << endl;
}
return 0;
}
相关文章推荐
- ACM Computer Factory - poj 3436 (最大流)
- 畅通工程再续---hdu1875
- 产生冠军(set,map,拓扑结构三种方法)
- 1.7-wc命令
- iOS屏幕强制横屏,如右转或左转
- 设置VMware随系统开机自动启动并引导虚拟机操作系统
- Oracle如何还原数据库
- MyBatis-Spring-TransactionManager
- 点击后,展开 收缩功能
- HDU1232 畅通工程 (并查集)
- 1.6-sort命令
- 51Nod_1419最小公倍数挑战
- selinium的ruby版在windows8下安装
- Android(java)学习笔记132:ListViewProject案例(ListView + ArrayAdapter)
- Codeforces 312C
- JAVA/IOS下emjoi表情的截取
- excel转换成pdf的常用方法
- oracle 查询重复数据以及删除重复数据
- 1.5-cut命令
- 心理