3 条题解
-
1
#include<bits/stdc++.h> using namespace std; int m,n,a[55][55],dp[110][55][55];
int main(){ cin>>m>>n; for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) cin>>a[i][j];
for(int k=2;k<=m+n;k++){ for(int i1=1;i1<=m;i1++){ for(int i2=1;i2<=m;i2++){ int j1=k-i1, j2=k-i2; if(j1<1||j1>n||j2<1||j2>n) continue; int val=max({dp[k-1][i1][i2], dp[k-1][i1-1][i2], dp[k-1][i1][i2-1], dp[k-1][i1-1][i2-1]}); if(i1==i2) dp[k][i1][i2]=val+a[i1][j1]; else dp[k][i1][i2]=val+a[i1][j1]+a[i2][j2]; } } } cout<<dp[m+n][m][m]; return 0;
}
信息
- ID
- 524
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- (无)
- 递交数
- 107
- 已通过
- 19
- 上传者