[Luogu] P3225 [HNOI2012]矿场搭建

题目描述

煤矿工地可以看成是由隧道连接挖煤点组成的无向图。为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处。于是矿主决定在某些挖煤点设立救援出口,使得无论哪一个挖煤点坍塌之后,其他挖煤点的工人都有一条道路通向救援出口。

请写一个程序,用来计算至少需要设置几个救援出口,以及不同最少救援出口的设置方案总数。

题目解析

tarjan找双联通分量,找割点。

在一个分量里有 ≥2 个割点,这个分量就怎么都能跑出去,不需要建出口。

在一个分量里有 1 个割点,这个分量就要防止割点塌了,需要建1个出口。

在一个分量里没有割点,说明它不和别的分量连通,为了防止出口塌掉,要建两个出口。

Code

猜你喜欢

转载自www.cnblogs.com/floatiy/p/9708207.html