第46届icpc上海I题 Steadily Growing Steam
链接:https://ac.nowcoder.com/acm/contest/24872/I
来源:牛客网
题目描述
从n个元素中选任意个组成两个集合元素总体积(数值)相等的集合,求所有可能集合的元素价值之和的最大值。
额外条件为可以将最多k个数变为原来的2倍以有机会于构造更多元素组成的集合获得更大价值。
注意到为多过程多决策问题,且决策过程复杂,因此应该考虑动态规划
设f[i][j][k]:从前i个物品选,总体积定义为(大于base为左集合元素总体积大于右集合,小于则反之),且使用k次翻倍数值的机会所获收益的最大值,则max{f[n][base][i]}(0=<i<=k)为最大收益。
注意到这里体积定义方法为双方向选择背包体积dp相关问题的经典思维:定义为相对差值,而不是开两个维度分别记录所选数值,否则会超时且容易爆空间。