ZSTU1362-数字三角形
http://acmpj.zstu.edu.cn/JudgeOnline/showproblem?problem_id=1362
经典DP教学专用。。。
#include<cstdio> #include<cstring> #include<algorithm> #define MAXN 102 using namespace std; int dp[MAXN][MAXN],a[MAXN][MAXN]; int main(void) { int n,i,j; while(scanf("%d",&n),n) { memset(dp,0,sizeof(dp)); for(i=1;i<=n;i++) for(j=1;j<=i;j++) scanf("%d",&a[i][j]); for(j=1;j<=n;j++) dp[n][j]=a[n][j]; for(i=n-1;i>=1;i--) for(j=1;j<=i;j++) dp[i][j]=a[i][j]+max(dp[i+1][j],dp[i+1][j+1]); printf("%d\n",dp[1][1]); } return 0; }