#P3065. Stargates
Stargates
本题没有可用的提交语言。
问题描述
“很久很久以前,在一个遥远的星系……”一个先进的文明发现了一种在恒星系统之间瞬间旅行的方式。从那时起,他们倾尽全力建造星门对,以连接遥远的行星。很快,通信网络变得极为复杂,他们需要帮助来维护连通星系的信息。
请编写一个程序,帮助他们维护连通系统的信息。我们保证,你最好的解决方案将被传送到他们的时空连续体中。行星A和B是连通的,当且仅当它们之间有直接的星门连接,或者存在行星序列P1, P2, ..., Pn,其中P1=A,Pn=B,且对于k∈{2..n},Pk与Pk-1之间有直接的星门连接。连接是双向的,两个行星之间可能存在多条连接路径。
输入
输入文件包含多个数据集。每个数据集占据一行或多行,输入中没有空行。每行以单个字母'D'、'C'或'Q'(大写或小写)开头,后跟1到5个整数,含义如下:
- 'D'(定义):仅有一个参数,表示当前数据集考虑的行星数量(,行星编号从1到)。
- 'C'(连接):在给定的行星对之间建立连接。
- 'Q'(查询):检查给定的行星对是否连通。
'C'和'Q'命令(以下统称'X'命令)共享相同的语法:
- X src dst:在给定的行星对之间建立连接(或查询)。
- X src dst nnn:在行星与从开始的个连续行星之间建立连接(或查询)。
示例:X 1 100 3 建立连接、、。 - X src dst nnn step:在行星与从开始、步长为的个行星之间建立连接(或查询)。
示例:X 1 100 3 5 建立连接、、。 - X src dst nnn dststep srcstep:在对行星之间建立连接(或查询),其中源行星从开始、步长为,目标行星从开始、步长为。
示例:X 1 100 3 5 15 建立连接、、。
输出
对于输入中的每个查询('Q')行,输出一行结果。每行包含两个用“ - ”分隔的数字:第一个值表示查询中连通的行星对数,第二个值表示不连通的行星对数。
输入输出示例
输入数据 1
d 5
C 1 3
D 20
q 1 3
c 1 10 10
Q 1 2 18 1 1
输出数据 1
0 - 1
9 - 9
来源
Southeastern Europe 2006