#P3225. 矿场搭建(Mining Your Own Business)

0

矿场搭建(Mining Your Own Business)

矿场搭建(Mining Your Own Business)

题目描述

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

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

输入格式

输入文件有若干组数据。

每组数据的第一行是一个正整数 N (N≤500)N\ (N \le 500),表示工地的隧道数。

接下来的 NN 行每行是用空格隔开的两个整数 SS 和 TT,表示挖煤点 SS 与挖煤点 TT 由隧道直接连接。

输入数据以 00 结尾。

输出格式

对于每组数据,输出一行。

第 ii 行组数据以 Case i: \verb!Case i: ! 开始(注意大小写,Case\verb!Case! 与 i\verb!i! 之间有空格,i\verb!i! 与 :\verb!:! 之间无空格,:\verb!:! 之后有空格)。

其后是用空格隔开的两个正整数,第一个正整数表示对于第 ii 组输入数据至少需要设置几个救援出口,第二个正整数表示对于第 ii 组输入数据不同最少救援出口的设置方案总数。

输入数据保证答案小于 2642^{64}。输出格式参照以下输入输出样例。

样例输入 #1

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

样例输出 #1

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)。

数据范围及约定

对于每组数据,设 mm 为各组 S,TS, T 中最大值,则有:

  • 1≤m≤1031 \le m \le 10^3;
  • 各组 S,TS, T 构成的集合 V∈[1,m]∩ZV\in[1, m] \cap \mathbb Z。
  • VV 中任意两点连通。

知识点与难度

本题涉及的知识点从属于 CSP-S,难度(CF Rating):2000。


测试点分布

Subtask 分值 测试点编号 说明
0 10 1 样例
1 20 2~7 小规模 N≤30 / 特殊: 整个图无割点(需设2个出口,方案C(
2 8~13 中等规模 N≤200 / Hack: 含度≥2中间点双(有≥2个割点的点双不设出口)
3 30 14~20 满规模 N≤500,m≤1000 多组测试数据与64位无符号整数方案数测试
4 20 21~25 满规模 N=500 仙人掌/星型块树/双连通环混合回归

出处:原题链接