以下代码来自http://zhidao.baidu.com/question/236565261.html?fr=im100008
(1)
输入处理颠倒了,应是:
for(j=1;j<=n;j++)
{
scanf("%ld",&value[j]);//scanf("%ld",&volume[j]);
}
for(j=1;j<=n;j++)
{
scanf("%ld",&volume[j]);//scanf("%ld",&value[j]);
}
(2)
用一维数组dp就够了。既然用了,就要先把dp[diyi]全拷贝到dp[dier]中。还有,value和volume的下标要从0开始。
以下是修改后AC的代码:
本文针对背包问题提供了一段优化后的C语言代码实现。通过对输入处理的调整和使用一维数组简化状态转移方程,提高了代码效率。文章还详细展示了如何进行数组复制,并通过倒序迭代避免了覆盖已计算值的问题。
484

被折叠的 条评论
为什么被折叠?



