[POJ 3352] and [POJ 3177]

Road Construction

Redundant Paths

两题几乎是一样的,除了数据范围有些许差异。题目大意是,有一个连通的无向图,求至少需要添加多少条边,才能使得在图中任意移去一条边后仍然连通。

(又)WA了一天后发现:可以先缩点,将图转换成一颗树,然后求树上叶子结点的数目cnt,如果cnt==1输出0,否则需要增加的边数即为(cnt+1)/2。另外由于是无向图,不需要用入栈标记数组来判横向边,且已知图是连通的,DFS调用一次即可,略为简化了些代码。

具体实现如下: