【HDOJ】2571 命运

时间:2023-03-08 23:16:12
【HDOJ】2571 命运

DP。

 /* 2571 */
#include <cstdio>
#include <cstring>
#include <cstdlib> #define MAXN 25
#define MAXM 1005
#define INF -999999 int map[MAXN][MAXM];
int dp[MAXN][MAXM]; int max(int a, int b) {
return a>b ? a:b;
} int main() {
int t, n, m;
int i, j, k; #ifndef ONLINE_JUDGE
freopen("data.in", "r", stdin);
#endif scanf("%d", &t);
while (t--) {
scanf("%d %d", &n, &m);
for (i=; i<=n; ++i)
for (j=; j<=m; ++j)
scanf("%d", &map[i][j]); for (j=; j<=m; ++j)
dp[][j] = INF;
for (i=; i<=n; ++i)
dp[i][] = INF;
dp[][] = dp[][] = ;
for (i=; i<=n; ++i) {
for (j=; j<=m; ++j) {
dp[i][j] = max(dp[i-][j], dp[i][j-]);
k = ;
while (j >= k) {
if (j%k == )
dp[i][j] = max(dp[i][j], dp[i][j/k]);
++k;
}
dp[i][j] += map[i][j];
}
}
printf("%d\n", dp[n][m]);
} return ;
}