解题思路:DP 逆推, 邻接矩阵
注意事项:
参考代码:
#include<iostream> #include<algorithm> using namespace std; const int N = 2e2 + 10; int g[N][N],f[N],a[N],path[N]; int main() { int x, y, n; cin >> n; for(int i = 1; i <= n; i ++ ) { cin >> a[i]; g[i][i] = 1; } cin >> x >> y; while(!(x == 0 && y == 0)){ g[x][y] = 1; cin >> x >> y; } //f[i] 以i节点为结尾的最多地雷数 for(int i = n; i >= 1; i --){ for(int j = i; j <= n; j ++) if(g[i][j]) if(f[i] < f[j] + a[i]){ f[i] = f[j] + a[i]; path[i] = j; } } int mx = f[1] , k = 1; for(int i = 1; i <= n; i ++) if (mx < f[i]) { k = i; mx = f[i]; } cout << k; while (path[k] && k != path[k]) { k = path[k]; cout << '-' << k; } cout << endl << mx; return 0; }
0.0分
1 人评分
回文串 (C语言代码)浏览:2860 |
A+B for Input-Output Practice (V) (C语言代码)浏览:625 |
C语言程序设计教程(第三版)课后习题5.7 (Java代码)浏览:889 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:338 |
1024题解浏览:809 |
【亲和数】 (C语言代码)浏览:600 |
杨辉三角 (C语言代码)浏览:484 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:588 |
2005年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:575 |
输入输出格式练习 (C语言代码)浏览:850 |