信息
- ID
- 1607
- 时间
- 2000ms
- 内存
- 512MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者
因为绝对值和与元素顺序无关,可设 B1≤B2≤⋯≤BL;最优解中还可令 B1=0,否则所有元素同时减一不改变绝对值和,却会减少最大值。
令 Ck=Bk+1−Bk≥0,每个间隔 Ck 被左侧 k 个元素与右侧 L−k 个元素之间的所有数对计算,因而条件等价于 ∑k=1L−1k(L−k)Ck=Ai,而 max(B)=∑Ck。
问题因此是以 k(L−k) 为物品重量、每件代价为 1 的完全背包最小化。对所有询问只需预处理到 M=maxAi;由对称性只考虑 k≤L/2,且当 k(L−k)>M 时后续权值都不可能出现在答案中。
可用的权值不超过 O(M) 个,因而时间复杂度为 O(N+MM),空间复杂度为 O(M)。