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; }