syhd142 |
|
|||
日歷
統計
導航常用鏈接留言簿(2)隨筆檔案(23)文章分類(270)
文章檔案(122)我的豆瓣搜索最新評論
閱讀排行榜
評論排行榜 |
簡單DP,以前做過,驗證一下從上往下遞推也是正確的。 #include <stdio.h>
#include <string.h> #define N 105 int main() { int t, n, a[N][N], b[N][N]; while(~scanf("%d", &n)) { for(int i = 0; i < n; i++) { for(int j = 0; j <= i; j++) { scanf("%d", &a[i][j]); b[i][j] = a[i][j]; } } for(int i = 0; i < n - 1; i++) { for(int j = 0; j <= i; j++) { if(b[i][j] + a[i + 1][j] > b[i + 1][j]) b[i + 1][j] = b[i][j] + a[i + 1][j]; if(b[i][j] + a[i + 1][j + 1] > b[i + 1][j + 1]) b[i + 1][j + 1] = b[i][j] + a[i + 1][j + 1]; } } int ans = 0; for(int i = 0; i < n; i++) { if(b[n - 1][i] > ans) ans = b[n - 1][i]; } printf("%d\n", ans); } return 0; }
|
![]() |
|
Copyright © Fucker | Powered by: 博客園 模板提供:滬江博客 |