arc120e 1d party

某些题解能不能写的清楚一点啊。。

首先容易发现一个性质:每个人肯定是全速走,发生一次碰撞以后拐弯去碰另一个。然后就得到了\(O(n\log V)\)的做法。

可是这没有arc的b格!还需要想线性做法。

首先考虑不合法的情况。什么时候一个人往右走,一直碰不到右边的点?肯定右边的点也在往右走,右边的点的右边也在往右走,右边的点的右边的右边也在往右走,他右边的所有点都是往右走的。

那我们强制1往右走,n往左走,就一定合法了。

当然上面只是一些准备工作。有一个重要的想法,就是把拐弯看成穿透。

现在问题变成了什么样呢?初始时刻给所有人规定一个方向,他一直朝这个方向走。每次A撞上B,如果B的另一边没有相遇,A就继续走,否则A停下。

好像还是没法做?

我们可以把这n个点分成若干RRRRRRRLLLLLL这样的段。考虑如何统计答案。对于段内,肯定是最后一个R和所有L相撞,第一个L和所有R相撞,最终只有最后一个R还在走,别的人都停了。

\(p\)数组记录所有第一个L的位置,答案就是\(\max\frac{ a_{p_i}-a_{p_{i-1}-1}}{2}\)

又发现一个性质,不存在LLL,RRR这样的子串。于是我们切掉了arc的e题!

代码

upd:别的题解不是不清楚,是我太拉了

posted @ 2021-06-23 14:40  yugyppah656  阅读(192)  评论(1编辑  收藏  举报