hdu 2084 数塔
2017-05-16 21:06
337 查看
题目来源:HDU 2084
思路:简单dp,注意初始化。
#include <iostream> #include <stdio.h> #include <algorithm> #include <cstdio> #include <math.h> using namespace std; int temp[105][105]; int dp[105][105]; int N; void init() { for(int i=1;i<=N;++i) { dp[i][1]=dp[i-1][1]+temp[i][1]; dp[i][i]=dp[i-1][i-1]+temp[i][i]; } } int main() { int T; scanf("%d",&T); while(T--) { int i,j; scanf("%d",&N); int ans=0; for(i=1;i<=N;++i) for(j=1;j<=i;++j) scanf("%d",&temp[i][j]); init(); for(i=2;i<=N;++i) for(j=2;j<N;++j) dp[i][j]=max(dp[i-1][j-1],dp[i-1][j])+temp[i][j]; for(i=1;i<=N;++i) { if(dp [i]>ans) ans=dp [i]; } printf("%d\n",ans); } return 0; }
ps:现在也就做做这样的dp水题了 orz...