社区讨论
简单DP,蒟蒻求调
P2347[NOIP 1996 提高组] 砝码称重参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lo2t2w29
- 此快照首次捕获于
- 2023/10/23 19:19 2 年前
- 此快照最后确认于
- 2023/10/23 19:19 2 年前
如果枚举每一个可以组成的重量a,如果 dp[j-a]为1,则dp[j]也设为1,res++
CPP#include <iostream>
using namespace std;
int type[] = {0, 1, 2, 3, 5, 10, 20};
int total[10];
int sum;
int res;
int dp[1105];
int main()
{
for (int i = 1; i <= 6; i++)
{
cin >> total[i];
sum += total[i] * type[i];
}
dp[0] = 1;
for (int i = 1; i <= 6; i++)
{
for (int j = sum; j >= 0; j--)
{
if (dp[j])
{
continue;
}
else
{
for (int k = 1; k <= total[i]; k++)
{
if (dp[j - type[i] * k] && j - type[i] * k >= 0 && dp[j] == 0)
{
dp[j] = 1;
res++;
}
}
}
}
}
cout << "Total=" << res << endl;
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...