[url]http://acm.hdu.edu.cn/showproblem.php?pid=2084
这是一个经典的Dp问题!希望对你们有帮助!
1 5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5
30
#include<cstdio> #include <iostream> using namespace std; int max(int a, int b) { return a>b?a:b; } int main() { int n,i,j; int dp[101][101]; int T; while(scanf("%d",&T)!=EOF) { while(T--) { scanf("%d",&n); for(i=0;i<n;i++) for(j=0;j<=i;j++) scanf("%d",&dp[i][j]); for(i=n-2;i>=0;i--) for(j=0;j<=i;j++) dp[i][j]=dp[i][j]+max(dp[i+1][j],dp[i+1][j+1]); printf("%d\n",dp[0][0]); } } return 0; }
原文:http://blog.csdn.net/u012860063/article/details/19769227