码迷,mamicode.com
首页 > 其他好文 > 详细

ARC120E

时间:2021-06-02 17:28:18      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:复杂   影响   个人   枚举   i+1   存在   个数   math   关键点   

题意

每个人所在位置为\(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)\)

ARC120E

标签:复杂   影响   个人   枚举   i+1   存在   个数   math   关键点   

原文地址:https://www.cnblogs.com/Grice/p/14828175.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!