51nod 1083 矩阵取数问题

就很简单很简单的dp 

只能从右或者从下走

 

所以  dp方程直接看下面公式吧  反正也不难

#include<bits/stdc++.h>
using namespace std;
const int maxn = 550;
int s[maxn][maxn];
int dp[maxn][maxn];
int main ()
{
    int n; cin>>n;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            cin >>s[i][j];
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            dp[i][j] = max(dp[i-1][j],dp[i][j-1]) + s[i][j];
        }
    }
    cout<< dp[n][n]<<endl;
}

 

posted @ 2017-08-21 22:22  Draymonder  阅读(161)  评论(0编辑  收藏  举报