ARC120E

题意

每个人所在位置为\(a_i\)\(a_i< a_{i+1}\)\(a_i\)均为奇数),每秒每个人可以选择往左或往右最多一定\(1\)的距离,问最少最长时间内,对于每个\(i< n\),满足存在一个时刻\(i,i+1\)两个人位于同一位置。
\(n\le 2e5,a_i\le 1e9\)

做法

显然,可以令每个人的决策为两种:
(1)开始往左走,在碰到左边的人之后往右一直走。
(2)开始往右走,在碰到右边的人之后往左一直走。

令第一种方式为\(L\),第二种为\(R\)

定义1:若对于\(i,i+1\)\(i\)\(i+1\)第一个遇到的人,\(i+1\)也是\(i\)第一个遇到的人,称\(i\)\(i+1\)匹配

那么\(n\)个人有\(n-1\)种可能匹配。

引理1:存在最优解,使得不会有连续\(3\)种匹配不出现,即不会出现\(i-1,i,i+1,i+2\),中间的三种匹配都失效。

证明:
\(i-1\)\(R\),则\(i,i+1,i+2\)均为\(R\),显然将\(i,i+1\)调整成\(R,L\)不会影响答案。
\(i+2\)\(L\),则同理。
现在假设\(i-1,i+2\)分别为\(L,R\)

对于他们的路径,
\(i,i+1\)分别为\(L,L\),则\(i+1,i+2\)会在蓝色节点相遇;
\(i,i+1\)分别为\(L,R\),则\(i,i+1\)会在蓝色节点相遇;
\(i,i+1\)分别为\(R,R\),则\(i-1,i\)会在蓝色节点相遇。
故若将\(i,i+1\)改为\(R,L\),不会使答案变劣。

推论1:不会出现连续四个位置为同一个选择。

考虑对于一种方案,一个段表示极长的,选择相同的,一大段表示两个\(R,L\)的相邻段。
对于一个大段\([R]...[R][L]...[L]\),另这四个关键点的位置分别为\(x_1,x_2,x_3,x_4\),其时间显然为\(\max(\frac{x_3-x_1}{2},\frac{a_4-a_2}{2})\);而对于两个相邻的大段,令另一个段四个关键点分别为\(y_1,y_2,y_3,y_4\),则其时间显然为\(\frac{y_3-x_2}{2}\)

\(f_{i,j}\)为:\(i\)\(L\),上一个\(R\)的位置为\(j\)的最少时间。转移枚举上一个大段的结尾。
根据推论1\(j\)的个数为常数个,转移的个数也为常数个,故总复杂度为\(O(n)\)

posted @ 2021-05-30 15:58  Grice  阅读(162)  评论(0编辑  收藏  举报