社区讨论
抽大象事件
P1064[NOIP 2006 提高组] 金明的预算方案参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lwj6pssn
- 此快照首次捕获于
- 2024/05/23 19:43 2 年前
- 此快照最后确认于
- 2024/05/23 21:26 2 年前
CPP
for(int i = 1; i <= m; i ++) {
if(!zhup[i]) continue;
for(int k = n; k >= zhup[i]; k --) {
f[k] = max(f[k], f[k-zhup[i]] + zhuv[i]);
if(k >= zhup[i] + fup[i][1])
f[k] = max(f[k], f[k-zhup[i]-fup[i][1]] + zhuv[i] + fuv[i][1]);
if(k >= zhup[i] + fup[i][2])
f[k] = max(f[k], f[k-zhup[i]-fup[i][2]] + zhuv[i] + fuv[i][2]);
if(k >= zhup[i] + fup[i][1] + fup[i][2])
f[k] = max(f[k], f[k-zhup[i]-fup[i][1]-fup[i][2]] + zhuv[i] + fuv[i][1] + fuv[i][2]);
}
}
关于```cpp
if(i < 2) continue;
if(i < 3) continue;
CPP这两行代码,删了之后正确,不删60分,为什么呢?
是因为空间优化后f[j]的含义变化,不再是前i个物品体积为j的最优解了吗?
回复
共 0 条回复,欢迎继续交流。
正在加载回复...