解题思路:经典DP, f[i] 以i节点为结尾的最大上升子序列和
注意事项:
参考代码:
#include<iostream> #include<algorithm> const int N = 1e3 + 10; int a[N],f[N]; using namespace std; int main() { int n ; cin >> n; for(int i = 1; i <= n; i ++) cin >> a[i]; for(int i = 1; i <= n; i ++){ f[i] = a[i]; for(int j = 1; j < i ; j ++){ if(a[i] > a[j]){ f[i] = max(f[i], f[j] + a[i]); } } } int res = 0; for(int i = 1; i <= n; i ++) if(res < f[i]) res = f[i]; cout << res; return 0; }
0.0分
1 人评分
C语言训练-舍罕王的失算 (C++代码)(都给答案了还算什么)浏览:972 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:1118 |
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C++代码)(手动优化一下计算)浏览:1284 |
汽水瓶 (C语言代码)浏览:608 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:596 |
C语言程序设计教程(第三版)课后习题10.1 (Java代码)浏览:1447 |
淘淘的名单 (C语言代码)浏览:1104 |
WU-格式化数据输出 (C语言代码)浏览:1755 |
WU-判定字符位置 (C++代码)浏览:1406 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:701 |