@inkysakura
2017-05-04T23:00:54.000000Z
字数 489
阅读 1224
CODE
#include <iostream>
#include <cstring>
using namespace std;
int t,n,m;
int a[505][505],b[505][505];
int dp[505][505],ncase;
int main()
{
cin >> t;
while(t--)
{
cin >> n >> m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
int tp;
cin >> tp;
a[i][j]=a[i][j-1]+tp;
}
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
int tp;
cin >> tp;
b[i][j]=b[i-1][j]+tp;
}
memset(dp,0,sizeof(dp));
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
dp[i][j]=max(dp[i-1][j]+a[i][j],dp[i][j-1]+b[i][j]);
}
cout << "Case "<<++ncase<<": "<<dp[n][m]<<endl;
}
return 0;
}