#2024. 矿场搭建

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: hsj

题目描述

原题来自:HNOI 2012

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

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

输入格式

输入有若干组数据,每组数据的第一行是一个正整数N,表示工地的隧道数,接下来的 N 行每行是用空格隔开的两个整数 ST ,表示挖煤点 S 与挖煤点 T由隧道直接连接。输入数据以 0 结尾。

输出格式

输入中有多少组数据,输出中就有多少行。每行对应一组输入数据的结果。

其中第 i 行以Case i: 开始(注意大小写,Casei 之间有空格,i 与 : 之间无空格,: 之后有空格),其后是用空格隔开的两个正整数,第一个正整数表示对于第 i组输入数据至少需要设置几个救援出口,第二个正整数表示对于第 i 组输入数据不同最少救援出口的设置方案总数。

输出格式参照以下输入输出样例。

样例

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),(3,4),(4,5),(4,6)

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

数据范围与提示:

N≤500 ,输入数据保证答案小于 2^{64}