题解:P11258 [GDKOI2023 普及组] 城市建设
andychen_2012 · · 题解
根据非管理城市只能连一条边,每条道路至少联结一个管理城市,我们可以发现,在不给任意两个管理城市间连边的时候,整个图是一个菊花森林,菊花的根是管理城市。我们称管理城市的所有非管理城市儿子为该管理城市所管理的城市。(有点绕)
我们如果只考虑管理城市间的连边,那么必然是按编号顺序连边最优,付出的代价是最右的管理城市编号减去最左的管理城市编号。
接下来考虑管理城市与非管理城市的连边,我们发现一个管理城市所管理的区域肯定是连续的一段,且其是这一段区域的中心。证明如下:
- 若管理城市管理的区域不是连续的一段,那么存在两个管理城市的管理区域互相穿插,比如说
1 C 1 2 2 1 1 C 2。其中C指代管理城市,左边的管理所有编号为 1 的城市,右边的管理所有编号为 2 的城市,那么将上面的管理区域改为1 C 1 1 1 2 2 C 2必然更优。也即,若两个管理城市编号分别为i,j(i<j) ,而i 管理城市a ,j 管理城市b ,满足i<b<a<j ,则这两条连边的代价之和为a-i+j-b ,若i 管理b ,j 管理a ,则代价和为b-i+j-a<a-i+j-b 。若i<j<a ,则i 与a 的连边代价为a-i>a-j ,因此需要将a 的管理城市改为b 。 - 管理城市与其儿子的连边代价是两段连续和,即
(1+2+\cdots+a)+(1+2+\cdots+b) ,其中a+b 即为其儿子的数量。只有当a,b 最接近时,该连续和最小。令a+b+1=s ,当s 为奇数时,和为(\lfloor \frac{s}{2} \rfloor)(\lfloor \frac{s}{2} \rfloor+1) ;当s 为偶数时,和为\lfloor \frac{s}{2} \rfloor^2 。
因此对于给定的
其中
因此