CF1149D

题意

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

做法

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

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

posted @ 2020-05-23 14:40  Grice  阅读(174)  评论(0编辑  收藏  举报