CF1149D

题意

一张(n)个点(m)条边的无向图,只有(a,b)两种边权((a<b)),对于每个(i),求图中所有的最小生成树中,从(1)(i)距离的最小值
(nle 70,n-1le mle 200,1le a<ble 10^7)

做法

保留(a)的连通块,然后到达一个连通块后,为了不形成环,不能再回这个连通块了
将连通块编号
(f_{S,i})为当前在(i)点,已经离开过(S)状态的连通块了,用状态跑最短路
由于仅有两种边权,可以开两个队列
(O(2^nm))

若联通块点数(le 3),若离开这个连通块再回来,至少经过两条(b)边,而在块内走是之多两条(a)
故点数(le 3)的连通块没用
(O(2^{n/4}m))

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