标签:www. ext nod 算法 最大 end int 价值 输出
第1行:N,N为矩阵的大小。(2 <= N <= 500) 第2 - N + 1行:每行N个数,中间用空格隔开,对应格子中奖励的价值。(1 <= N[i] <= 10000)
输出能够获得的最大价值。
3 1 3 3 2 1 3 2 2 1
11
题解:简单DP问题,因为只能往下或右走,所以DP方程为dp[i][j]=max(dp[i-1][j]+dp[i][j],dp[i][j-1]+dp[i][j]),输出dp[n][n]即可。
AC代码:
1 #include<iostream> 2 using namespace std; 3 const int maxn = 505; 4 int dp[maxn][maxn]; 5 int n; 6 int main() 7 { 8 cin>>n; 9 for(int i=1;i<=n;i++) 10 { 11 for(int j=1;j<=n;j++) 12 { 13 cin>>dp[i][j]; 14 } 15 } 16 for(int i=1;i<=n;i++) 17 { 18 for(int j=1;j<=n;j++) 19 { 20 dp[i][j]=max(dp[i-1][j]+dp[i][j],dp[i][j-1]+dp[i][j]); 21 } 22 } 23 cout<<dp[n][n]<<endl; 24 return 0; 25 }
标签:www. ext nod 算法 最大 end int 价值 输出
原文地址:http://www.cnblogs.com/sortmin/p/7948850.html