// UVa 882 - The Mailbox Manufacturers Problem
#include <iostream>
#include <string.h>
using namespace std;
int main() {
int t, oo[1];
memset(oo, 127, sizeof(oo));
for (cin >> t; t; t--) {
int n, m;
cin >> n >> m;
int T[11][101][101];
memset(T, 0, sizeof(T));
for (int i = 1; i <= m; i++) {
int ii = (i * (i - 1)) >> 1;
for (int j = i; j <= m; j++)
T[1][i][j] = ((j * (j + 1)) >> 1) - ii;
}
for (int k = 2; k <= n; k++)
for (int d = 0; d < m; d++)
for (int i = 1; i + d <= m; i++) {
int j = i + d;
int partial = oo[0];
for (int l = i; l <= j; l++) {
int sub_sol = max(T[k][l + 1][j], T[k - 1][i][l - 1]) + l;
if (sub_sol < partial)
partial = sub_sol;
}
T[k][i][j] = partial;
}
cout << T[n][1][m] << endl;
}
return 0;
}
Friday, June 12, 2015
UVa 882 - The Mailbox Manufacturers Problem
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment