P14411 [JOISC 2015] 道路建设 / Road Development
题目描述
IOI 国由 $N$ 个城市组成,这些城市编号为 $1, 2, \dots, N$。JOI 教授对 IOI 国道路网络建设的过程产生了兴趣。
JOI 教授查阅了有关 IOI 国历史的资料,发现以下事实:
- IOI 国的城市自建国以来至今保持不变。IOI 国建国初期没有任何连接城市的道路。
- 在 IOI 国建国 $i$ 年后($1 \le i \le Q$),制定了改善城市 $A_i$ 与城市 $B_i$ 之间交通状况的计划。
- 制定的改善计划中,部分计划得以实施,而部分计划则未实施而被放弃。
- 哪些计划被实施,哪些被放弃,从资料中可以明确得知。
- 所有被实施的改善计划均在一年内完成。
此外,从其他文献中得知,城市 $A_i$ 与城市 $B_i$ 之间交通状况的改善计划具有以下特点:
- 若在计划制定时,无法通过已建成的道路从城市 $A_i$ 移动到城市 $B_i$,则新建一条连接城市 $A_i$ 与城市 $B_i$ 的双向道路。新建的道路为未铺设路面的道路。
- 若在计划制定时,可以通过已建成的道路从城市 $A_i$ 移动到城市 $B_i$,则在所有可能的路径中,选择使用道路数量最少的路径,并将该路径中包含的所有未铺设路面的道路铺设路面。若存在多条使用道路数量最少的路径,则对所有这些路径中的未铺设路面道路进行统一铺设。已铺设路面的道路不会再次铺设。
JOI 教授为进一步调查,针对那些未实施而被放弃的改善计划,计算若仅这些计划被追加实施,每个计划中将铺设多少条道路。
### 题目
给定 IOI 国交通状况的改善计划及其实施情况,编写一个程序,对每个未实施而被放弃的改善计划,计算若该计划被实施,则将铺设多少条道路。
输入格式
从标准输入读入以下数据:
- 第一行包含两个整数 $N, Q$,以空格分隔。表示 IOI 国有 $N$ 个城市,JOI 教授关注了从建国起 $Q$ 年间的交通改善计划。
- 接下来的 $Q$ 行,第 $i$ 行($1 \le i \le Q$)包含三个整数 $T_i, A_i, B_i$,以空格分隔。整数 $T_i$ 表示在建国 $i$ 年后制定的改善计划的实施状态:当 $T_i = 1$ 时表示该计划已实施,当 $T_i = 2$ 时表示该计划未实施而被放弃。整数 $A_i, B_i$ 表示在建国 $i$ 年后,制定了改善城市 $A_i$ 与城市 $B_i$ 之间交通状况的计划。
输出格式
在标准输出上,对每个未实施而被放弃的改善计划,输出一行,表示若该计划被实施,则将铺设的道路数量。但若实施该计划会导致新建一条道路,则输出 $-1$。
说明/提示
### 样例 1 解释
在该输入示例中,IOI 国的交通改善计划执行情况如下:
- IOI 国有 3 个城市,建国初期没有任何连接这些城市的道路。
- 建国 1 年后,实施了城市 1 与城市 2 之间交通状况的改善计划。此时无法通过已建成的道路从城市 1 移动到城市 2,因此该计划导致新建了一条连接这两个城市的道路。
- 建国 2 年后,制定了城市 2 与城市 1 之间交通状况的改善计划,但未实施而被放弃。此时可以通过 1 条已建成的道路从城市 2 移动到城市 1,且该道路尚未铺设路面,因此对该改善计划对应的输出为 1。
- 建国 3 年后,制定了城市 2 与城市 3 之间交通状况的改善计划,但未实施而被放弃。此时无法通过已建成的道路从城市 2 移动到城市 3,因此对该改善计划对应的输出为 -1。
- 建国 4 年后,实施了城市 2 与城市 1 之间交通状况的改善计划。此时可以通过已建成的道路从城市 2 移动到城市 1,因此该计划导致将连接这两个城市的道路铺设路面。
- 建国 5 年后,制定了城市 1 与城市 2 之间交通状况的改善计划,但未实施而被放弃。此时可以通过 1 条已建成的道路从城市 1 移动到城市 2,且该道路已铺设路面,因此对该改善计划对应的输出为 0。
- 建国 6 年后,实施了城市 2 与城市 3 之间交通状况的改善计划。此时无法通过已建成的道路从城市 2 移动到城市 3,因此该计划导致新建了一条连接这两个城市的道路。
- 建国 7 年后,制定了城市 1 与城市 3 之间交通状况的改善计划,但未实施而被放弃。此时可以通过 2 条已建成的道路从城市 1 移动到城市 3,其中仅 1 条道路未铺设路面,因此对该改善计划对应的输出为 1。
### 数据范围
所有输入数据满足以下条件:
- $2 \le N \le 100000$
- $1 \le Q \le 300000$
- $1 \le T_i \le 2$($1 \le i \le Q$)
- $1 \le A_i \le N$($1 \le i \le Q$)
- $1 \le B_i \le N$($1 \le i \le Q$)
- $A_i \ne B_i$($1 \le i \le Q$)
### 子任务
#### 子任务 1 [10 分]
满足以下条件:
- $N \le 1000$
- $Q \le 3000$
#### 子任务 2 [25 分]
- 存在整数 $P$($1 \le P \le Q-1$),满足 $T_i = 1$($1 \le i \le P$)且 $T_i = 2$($P+1 \le i \le Q$)。
#### 子任务 3 [25 分]
- 对所有满足 $T_i = 1$ 的 $i$($1 \le i \le Q$),以下任一条件成立:
- 在实施建国 $i$ 年后的改善计划之前,无法通过已建成的道路从城市 $A_i$ 移动到城市 $B_i$。
- 在实施建国 $i$ 年后的改善计划之前,可以通过已建成的道路中不超过 200 条道路从城市 $A_i$ 移动到城市 $B_i$。
#### 子任务 4 [25 分]
- 满足 $T_i = 2$ 的 $i$($1 \le i \le Q$)的数量不超过 200。
#### 子任务 5 [15 分]
无额外限制。
翻译由 Qwen3-235B 完成