#P3065. Stargates

    ID: 2066 远端评测题 2000ms 64MiB 尝试: 3 已通过: 1 难度: 10 上传者: 标签>树结构并查集Southeastern Europe 2006

Stargates

本题没有可用的提交语言。

问题描述

“很久很久以前,在一个遥远的星系……”一个先进的文明发现了一种在恒星系统之间瞬间旅行的方式。从那时起,他们倾尽全力建造星门对,以连接遥远的行星。很快,通信网络变得极为复杂,他们需要帮助来维护连通星系的信息。

请编写一个程序,帮助他们维护连通系统的信息。我们保证,你最好的解决方案将被传送到他们的时空连续体中。行星A和B是连通的,当且仅当它们之间有直接的星门连接,或者存在行星序列P1, P2, ..., Pn,其中P1=A,Pn=B,且对于k∈{2..n},Pk与Pk-1之间有直接的星门连接。连接是双向的,两个行星之间可能存在多条连接路径。

输入

输入文件包含多个数据集。每个数据集占据一行或多行,输入中没有空行。每行以单个字母'D'、'C'或'Q'(大写或小写)开头,后跟1到5个整数,含义如下:

  • 'D'(定义):仅有一个参数,表示当前数据集考虑的行星数量NNN6000000N≤6000000,行星编号从1到NN)。
  • 'C'(连接):在给定的行星对之间建立连接。
  • 'Q'(查询):检查给定的行星对是否连通。

'C'和'Q'命令(以下统称'X'命令)共享相同的语法:

  • X src dst:在给定的行星对(src,dst)(src, dst)之间建立连接(或查询)。
  • X src dst nnn:在srcsrc行星与从dstdst开始的nnnnnn个连续行星之间建立连接(或查询)。
    示例:X 1 100 3 建立连接(1,100)(1,100)(1,101)(1,101)(1,102)(1,102)
  • X src dst nnn step:在srcsrc行星与从dstdst开始、步长为stepstepnnnnnn个行星之间建立连接(或查询)。
    示例:X 1 100 3 5 建立连接(1,100)(1,100)(1,105)(1,105)(1,110)(1,110)
  • X src dst nnn dststep srcstep:在nnnnnn对行星之间建立连接(或查询),其中源行星从srcsrc开始、步长为srcstepsrcstep,目标行星从dstdst开始、步长为dststepdststep
    示例:X 1 100 3 5 15 建立连接(1,100)(1,100)(16,105)(16,105)(31,110)(31,110)

输出

对于输入中的每个查询('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