Teek is Loading...
主题
容易想到为了往最优贡献靠,一定按 bi 升序排序选。
考虑暴力,设 fi,j 表示考虑前 i 个数,∑bi=j 的最优答案,则
时空复杂度 O(nmaxbi)。
考虑优化,题目给出了 ∑bi≤5×106,而转移 (2) 恰好又是 O(∑bi) 的,所以重点在于解决转移 (1)。
由于 (1) 和 (2) 对立,因此考虑每个人的基础贡献都是 (1),然后对 DP 的贡献进行 (1)′=0,(2)′=(2)−(1) 的操作,即将 DP 中的贡献计算全部减去 ai,这样就只需进行 (2)′ 转移即可。时空复杂度 O(∑bi)。