社区讨论

抽大象事件

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 条回复,欢迎继续交流。

正在加载回复...