#include<cstdio>
#include<cstring>
#define MAX(x,y) ((x)>(y)?(x):(y))
int dp[25][1005];
int m[25][1005];
int main()
{
int T,col,row;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&row,&col);
for(int i=1;i<=row;i++)
for(int j=1;j<=col;j++)
scanf("%d",&m[i][j]);
for(int i=1;i<=row;i++)
for(int j=1;j<=col;j++)
dp[i][j]=-0x3f3f3f3f;
dp[1][1]=m[1][1];
for(int i=2;i<=row;i++)
{
dp[i][1]=dp[i-1][1]+m[i][1];
}
for(int j=2;j<=col;j++)
{
dp[1][j]=MAX(dp[1][j],dp[1][j-1]+m[1][j]);
for(int k=1;k<j;k++)
if(j%k==0)
dp[1][j]=MAX(dp[1][j],dp[1][k]+m[1][j]);
}
for(int i=2;i<=row;i++)
{
for(int j=2;j<=col;j++)
{
dp[i][j]=MAX(dp[i][j],dp[i-1][j]+m[i][j]);
dp[i][j]=MAX(dp[i][j],dp[i][j-1]+m[i][j]);
for(int k=1;k<j;k++)
{
if(j%k==0)
dp[i][j]=MAX(dp[i][j],dp[i][k]+m[i][j]);
}
}
}
printf("%d\n",dp[row][col]);
}
}
hdu 2571 命运
最新推荐文章于 2020-04-30 21:35:44 发布