用学校OJ测样例,过了;用本地DevC++测样例,输出16;提交到洛谷上又AC
就离谱
代码如下:
#include <iostream>
#include <cstring>
using namespace std;
int s, n, c, b, C[10], K[10], cnt[105][1005], f[10][10][10][10][10];
int main()
{
cin >> s;
for (int i = 1; i <= s; i++)
{
cin >> n;
for (int j = 1; j <= n; j++)
{
cin >> c >> cnt[i][c];
}
cin >> cnt[i][1000];
}
cin >> b;
for (int i = 1; i <= b; i++)
{
s++;
cin >> C[i] >> K[i] >> cnt[s][1000];
cnt[s][C[i]] = 1;
}
memset(f, 0x3f, sizeof(f));
f[0][0][0][0][0] = 0;
for (int i = 1; i <= s; i++)
{
for (int a = cnt[i][C[1]]; a <= K[1]; a++)
{
for (int b = cnt[i][C[2]]; b <= K[2]; b++)
{
for (int c = cnt[i][C[3]]; c <= K[3]; c++)
{
for (int d = cnt[i][C[4]]; d <= K[4]; d++)
{
for (int e = cnt[i][C[5]]; e <= K[5]; e++)
{
f[a][b][c][d][e] = min(f[a][b][c][d][e], f[a - cnt[i][C[1]]][b - cnt[i][C[2]]][c - cnt[i][C[3]]][d - cnt[i][C[4]]][e - cnt[i][C[5]]] + cnt[i][1000]);
}
}
}
}
}
}
cout << f[K[1]][K[2]][K[3]][K[4]][K[5]] << endl;
return 0;
}
谁能解释一下???