#bzoj4998. 星球联盟

    ID: 5508 远端评测题 1000ms 256MiB 尝试: 0 已通過: 0 難度: 7.77 上傳者: 标签>数据结构并查集树结构Link-Cut-Tree特殊题目Remote Judgebzoj

星球联盟

题目描述

在遥远的SS星系中一共有NN个星球,编号为1N1\ldots N。其中的一些星球决定组成联盟,以方便相互间的交流。但是,组成联盟的首要条件就是交通条件。初始时,在这NN个星球间有MM条太空隧道。每条太空隧道连接两个星球,使得它们能够相互到达。若两个星球属于同一个联盟,则必须存在一条环形线路经过这两个星球,即两个星球间存在两条没有公共隧道的路径。为了壮大联盟的队伍,这些星球将建设PP条新的太空隧道。这PP条新隧道将按顺序依次建成。一条新轨道建成后,可能会使一些星球属于同一个联盟。你的任务是计算出,在一条新隧道建设完毕后,判断这条新轨道连接的两个星球是否属于同一个联盟,如果属于同一个联盟就计算出这个联盟中有多少个星球。

输入格式

11行三个整数N,MN,MPP,分别表示总星球数,初始时太空隧道的数目和即将建设的轨道数目。

22至第M+1M+1行,每行两个整数,表示初始时的每条太空隧道连接的两个星球编号。

M+2M+2行至第M+P+1M+P+1行,每行两个整数,表示新建的太空隧道连接的两个星球编号。

这些太空隧道按照输入的顺序依次建成。

输出格式

输出共PP行。

如果这条新的太空隧道连接的两个星球属于同一个联盟,就输出一个整数,表示这两个星球所在联盟的星球数。

如果这条新的太空隧道连接的两个星球不属于同一个联盟,就输出No(不含引号)。

样例

5 3 4
1 2
4 3
4 5
2 3
1 3
4 5
2 4
No
3
2
5

提示

image1

数据范围与约定

对于100%100\%的数据:1N,M,P2000001\le N,M,P\le 200000