#graph205. 矿场搭建

矿场搭建

矿场搭建

题目来源

HNOI2012

题目描述

煤矿工地可以看成是由隧道连接挖煤点组成的无向图。为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处。

于是矿主决定在某些挖煤点设立救援出口,使得无论哪一个挖煤点坍塌之后,其他挖煤点的工人都有一条道路通向救援出口。

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

输入格式

输入文件有若干组数据,每组数据的第一行是一个正整数 N(N≤500)N (N\leq 500) ,表示工地的隧道数,接下来的 NN 行每行是用空格隔开的两个整数 S,T(1≤S,T≤1000)S, T(1\leq S, T\leq 1000),表示挖煤点 SS 与挖煤点 TT 由隧道直接连接。输入数据以 0 结尾。

对于每组数据,保证输入中出现过的点是连通的。

输出格式

每行对应一组输入数据的结果。其中第 ii 行以 Case i: 开始,其后是用空格隔开的两个正整数,第一个正整数表示对于第 ii 组输入数据至少需要设置几个救援出口,第二个正整数表示对于第 ii 组输入数据不同最少救援出口的设置方案总数。输入数据保证答案小于 2642^{64}。

样例输入

9
1 3
4 1
3 5
1 2
2 6
1 5
6 3
1 6
3 2
6
1 2
1 3
2 4
2 5
3 6
3 7
0

样例输出

Case 1: 2 4
Case 2: 4 1

提示

Case 1 的四组解分别是 (2,4)(2,4),(3,4)(3,4),(4,5)(4,5),(4,6)(4,6);

Case 2 的一组解为 (4,5,6,7)(4,5,6,7)。