POJ PKU 3176 Cow Bowling DP
二维基础DP。
#include<iostream> using namespace std; inline int mmax(int a,int b) { return a>b?a:b; } int main() { int n,a[355][355],i,j; while (scanf("%d",&n)!=EOF) { for (i=0;i<n;++i) for(j=0;j<=i;++j) scanf("%d",&a[i][j]); for (i=1;i<n;++i) { a[i][0]+=a[i-1][0]; for(j=1;j<i;++j) a[i][j]+=mmax(a[i-1][j],a[i-1][j-1]); a[i][i]+=a[i-1][i-1]; } int max=a[n-1][0]; for(j=1;j<n;++j) if(max<a[n-1][j]) max=a[n-1][j]; printf("%d\n",max); } return 0; }
浙公网安备 33010602011771号