标签:
1 3 8 9 10 10 10 10 -10 10 10 10 -11 -1 0 2 11 10 -20 -11 -11 10 11 2 10 -10 -10
52
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; const int INF=-1<<30; int a[25][1010],dp[25][1010]; int main(){ int C; scanf("%d",&C); while(C--){ int n,m,i,j,k,maxn; scanf("%d%d",&n,&m); for(i=1;i<=n;++i){ for(j=1;j<=m;++j){ scanf("%d",&a[i][j]); } } memset(dp,0,sizeof(dp)); for(j=0;j<=m;++j) for(i=0;i<=n;++i) dp[i][j]=INF; dp[1][1]=a[1][1]; for(i=1;i<=n;++i){ for(j=1;j<=m;++j){ dp[i+1][j]=max(dp[i+1][j],dp[i][j]+a[i+1][j]); dp[i][j+1]=max(dp[i][j+1],dp[i][j]+a[i][j+1]); for(k=2;k*j<=m;++k){ dp[i][k*j]=max(dp[i][k*j],dp[i][j]+a[i][k*j]); } } } printf("%d\n",dp[n][m]); } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/qq_18062811/article/details/47190147