#P3000. 「JOISC 2015 Day2」Road Development

「JOISC 2015 Day2」Road Development

题目描述

译自 JOISC 2015 Day2 T3「Road Development」。

有一个 N N 个点的无向图,一开始不存在任何边。给出 Q Q 个操作:

  • 1 Ai Bi 1\ A_i\ B_i :如果 Ai A_i Bi B_i 不连通,加入一条白色边。如果 Ai A_i Bi B_i 连通,把在 Ai A_i Bi B_i 的最短路上的白边都染黑。
  • 2 Ai Bi 2\ A_i\ B_i :求出如果执行上述操作后,有多少条边被染黑了。

输入格式

第一行包含两个整数 N N Q Q ,含义如题面所述。

接下来 Q Q 行,第 i i 行包含三个整数 Ti T_i Ai A_i Bi B_i ,表示一个操作,含义如题面所述。

输出格式

对于每个 Ti=2 T_i = 2 的操作,如果 Ai A_i Bi B_i 不连通,输出 1 -1 ,否则输出染黑的白边数目。

3 7
1 1 2
2 2 1
2 2 3
1 2 1
2 1 2
1 2 3
2 1 3
1
-1
0
1
6 8
1 1 3
1 6 1
1 2 5
2 3 6
1 3 6
1 4 1
2 4 3
2 2 5
2
1
1
7 11
1 5 1
1 6 2
1 1 3
1 3 5
1 5 7
1 4 5
1 4 1
2 1 3
2 3 7
2 4 3
2 5 6
0
1
0
-1

数据范围与提示

对于全部数据,满足 $ 2 \le N \le 10^5, 1 \le Q \le 3 \times 10^5, 1 \le T_i \le 2, 1 \le A_i, B_i \le N, A_i \ne B_i $。

本题共有 5 5 个子任务。每个子任务的分数和附加限制如下:

Subtask 附加限制 分数
1 N1000,Q3000 N \le 1000, Q \le 3000 10
2 存在一个 PP (1PQ1 1 \le P \le Q - 1 ),对于 Ti=1 T_i = 1 i i 1iP 1 \le i \le P , 对于 Ti=2 T_i = 2 i i P+1iQ P + 1 \le i \le Q 25
3 对于 Ti=1 T_i=1 i i ,要么 Ai A_i Bi B_i 不连通,要么 Ai A_i Bi B_i 所在的连通块有不超过 200 200 条边
4 满足 Ti=2 T_i = 2i i (1iQ1 \le i \le Q) 不超过 200 200
5 无附加限制 15