POJ 3176 Cow Bowling (基础DP)

 /*
 qq:1239198605
 ctgu_yyf
        */

#include<iostream>
#include<cstdio>
#include<string>
#include<vector>
#include<queue>
#include<stack>
#include<cstring>
#include<algorithm>
#include<cmath>
#define ll long long
using namespace std;

int dp[355][355],map[355][355]; 
int n;

int main()
{
   ios::sync_with_stdio(false);
   cin>>n;
   
   for(int i=1;i<=n;i++)
   for(int j=1;j<=i;j++)
   cin>>map[i][j];
   
   dp[1][1]=map[1][1];
   
   for(int i=2;i<=n;i++)
   for(int j=1;j<=i;j++)
   {
   	if(j==1)
   	dp[i][j]=dp[i-1][j]+map[i][j];
   	else if(i==j)
   	dp[i][j]=dp[i-1][j-1]+map[i][j];
   	else
   	dp[i][j]=max(dp[i-1][j-1],dp[i-1][j])+map[i][j];
   	
   }
   
   int ans=dp[n][1];
   for(int i=1;i<=n;i++)
   ans=max(ans,dp[n][i]);
   
   cout<<ans<<endl;

return 0;
}

猜你喜欢

转载自blog.csdn.net/k_koris/article/details/81565312