解题思路:经典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语言代码)浏览:499 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:605 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:701 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:695 |
【出圈】 (C语言代码)浏览:590 |
剪刀石头布 (C语言代码)不知道怎么直接在scanf中用枚举变量浏览:1436 |
WU-蓝桥杯算法提高VIP-企业奖金发放 (C++代码)浏览:1267 |
C语言程序设计教程(第三版)课后习题6.11 (C语言代码)浏览:565 |
C语言训练-自由落体问题 (C语言代码)浏览:650 |
1908题解浏览:680 |