摘要:
给定 $2m+1$ 种重量为 $w_i \in \{-m,...,m\}$ 的物品(数量 $a_i \leq 10^{12}$),要求选择最大数量的物品使其总重恰好为 $l$($|l| \leq 10^{18}$)。解法:首先贪心地选取所有物品得到总重 $W$,通过优先丢弃大/小重量物品将 $W$ 调整至区间 $[l-m, l]$;然后对剩余差值 $d = l - W$($|d| \leq m$)进行多重背包计算,将物品增减视为新物品($w \in [-m, m]$, $v = \pm 1$),使用单调队列优化实现 $O(m^3)$ 复杂度。若无解则输出 $\texttt{impossible}$,否则最优解为初始数量 $S$ 加上背包计算结果。 阅读全文
posted @ 2025-06-16 15:48
wing_heart
阅读(12)
评论(0)
推荐(0)

浙公网安备 33010602011771号