推土机

· · 题解

前置知识:小白逛公园。

样例解释:样例说明。

思路:

极角排序 ^{\clubsuit} :把平面上的一些点按照一选定的中心点(不一定是给定点)排成顺(逆)时针。这篇(详细) 和 这篇(简洁) 都值得一看。

时间复杂度:\mathcal{O(n^{2}\log n)}

代码中变量及函数意义的解释:

代码:CODE。

线段树维护最大子段和部分不加赘述,但是要注意更新时与 0 取最大值,如果贡献为负数的话,我们当然可以不选这样的点。

以下是实现极角排序的函数,学习向量后会更加便于理解。

如果你不明白为什么这样可以让直线按照斜率从小到大排序,请看这里的一些补充说明。

(这里很多排序是个性化的,你也可以按照其它顺序排)

常见错误:调试请查看。

本题解的 LaTex 可自取。