#include <iostream>
#include <algorithm>
using namespace std;
int Lu[22][1002], Hui[22][1002];
int main()
{
int n;
int x, y;
int Yi;
cin >> n;
while (n--)
{
cin >> x >> y;
for (int i = 1; i <= x; i++)
for (int j = 1; j <= y; j++)
cin >> Lu[i][j];
for (int i = 0; i <= x; i++)
Hui[i][0] = -1000;
for (int j = 0; j <= y; j++)
Hui[0][j] = -1000;
Hui[0][1] = Hui[1][0] = 0;
for (int i = 1; i <= x; i++)
for (int j = 1; j <= y; j++)
{
int Max = -1000;
for (int q = 2; q <= j; q++)
{
if (j%q == 0)
Yi = max(Hui[i - 1][j], Hui[i][j/q]);
if (Max < Yi)
Max = Yi;
}
Yi = max(Hui[i - 1][j], Hui[i][j - 1]);
if (Max < Yi)
Max = Yi;
Hui[i][j] = Max + Lu[i][j];
}
cout << Hui[x][y] << endl;
}
return 0;
}
HDU ACM 26 2571 命运
最新推荐文章于 2020-04-30 21:35:44 发布