把以前做的都刷起來!
我確實是一個比較無聊的人啊
#include<stdio.h>
#include<string.h>
int n,m;
int map[21][1010];
int sum[21][1010];
int max(int x,int y)
{
if(x>y)
{
return x;
}
else
{
return y;
}
}
int main()
{
//freopen("in.txt","r",stdin);
int cas,maxnum;
int i,j,k;
while(scanf("%d",&cas)!=EOF)
{
while(cas--)
{
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
scanf("%d",&map[i][j]);
}
}
memset(sum,0,sizeof(sum));
sum[1][1]=map[1][1];
for(i=2;i<=n;i++)
{
sum[i][1]=sum[i-1][1]+map[i][1];
}
for(i=1;i<=m;i++)
{
sum[0][i]=-10000000;
}
for(j=2;j<=m;j++)
{
for(i=1;i<=n;i++)
{
maxnum=-10000000;
for(k=1;k<=j-1;k++)
{
if(j%k==0||k==j-1)
{
maxnum=max(maxnum,sum[i][k]);
}
}
sum[i][j]=max(sum[i-1][j],maxnum)+map[i][j];
}
}
printf("%d\n",sum[n][m]);
}
}
}