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