给定 $c$ 之后,最终的 $x$ 就等于将 $-1$ 替换成 $-c$ 之后的最大后缀和,所以过程中 $x$ 的最大值也就是最大子段和。考虑先预处理出凸包,其中点的横坐标是子段中 $-1$ 的个数,纵坐标是非负数的总和。可以考虑分治,那么分治中心往左往右分别都只有凸包上的点有用,合并只需要闵可夫斯基和。这样我们找到了 $O(N\log N)$ 个可能有用的点(实际上是 $O(N)$ 个,因为对于固定的 $-1$ 的个数,只需要保留最大的总和),对其建凸包,每次询问只需在凸包上二分。时间复杂度 $O((N+Q)\log N)$。
QOJ.ac
QOJ
The 3rd Universal Cup Finals is coming! Join our Warm-up Game and Prediction Game and win the prizes! Learn more...
Discussion #1534 for Problem #17725. Linked VERSE
Type: Editorial
Status: Open
Posted by: jiangly
Posted at: 2026-04-15 16:06:12
Last updated: 2026-04-15 16:06:17
题解
Comments
No comments yet.