是一个多重背包的问题啦。
要弄懂这个
for (int i = 0; i < n; i++)
{
for (int k = 0; k < m[i]; k++)
{
for (int j = sum / 2; j >= v[i]; j–)
{
dp[j] = (dp[j] > (dp[j - v[i]] + v[i]) ? dp[j] : (dp[j - v[i]] + v[i]));
}
}
}
,类似问题就好解决了。
以下为源代码:
https://paste.ubuntu.com/p/6WPwbmF2Xx/
HDU - 1171多重背包
最新推荐文章于 2019-08-23 10:52:10 发布