暴力n次计数背包
#include <iostream>
#include <cstring>
using namespace std;
int n, m, w[2005], f[2005];
int main()
{
cin >> n >> m;
for (int i = 1; i <= n; i++)
{
cin >> w[i];
}
for (int i = 1; i <= n; i++)
{
memset(f, 0, sizeof(f));
f[0] = 1;
for (int j = 1; j <= n; j++)
{
if (j == i)
{
continue;
}
for (int k = m; k >= w[j]; k--)
{
f[k] += f[k - w[j]];
f[k] %= 10;
}
}
for (int j = 1; j <= m; j++)
{
cout << f[j];
}
cout << endl;
}
return 0;
}
时间复杂度应是O(n2m),最坏情况是20003=80亿
可是提交AC,
建议加强数据