题目 30121

增量最小生成森林

查看题解 ↗GitHub ↗如何评测
题号
30121
时间限制
10000 ms
内存限制
1024 MB
标签
图论最小生成树
来源
Library Checker (yosupo06) - incremental_minimum_spanning_forest

【题目描述】

给定一张有 NN 个顶点、00 条边的带权无向图,按顺序插入 MM 条边 ei=(ui,vi,wi)e_i = (u_i,v_i,w_i),并维护该图的最小生成森林(MSF)。注意,由于约束条件,MSF 是唯一的。

设 F−1F_{-1} 为含 00 条边的森林,FiF_i 为加入边 eie_i 之后的 MSF。可以证明以下两种情况之一必然成立。

  • Fi=Fi−1+eiF_{i}=F_{i-1}+e_i
  • Fi=(Fi−1+ei)∖ejF_{i}=(F_{i-1}+e_i)\setminus e_j,其中 jj 为某个下标。

第一种情况输出 −1-1,第二种情况输出 jj。

【输入】

文本
$N$ $M$
$u_0$ $v_0$ $w_0$
$u_1$ $v_1$ $w_1$
:
$u_{M - 1}$ $v_{M - 1}$ $w_{M - 1}$

【输出】

文本
$ans_0$ $ans_1$ $ans_2$ ... $ans_{M - 1}$

【输入样例】

文本
3 5
0 1 2
1 2 3
0 2 1
1 2 5
0 0 4

【输出样例】

文本
-1 -1 1 3 4 

【数据范围】

  • 1≤N≤5000001 \leq N \leq 500000
  • 1≤M≤10000001 \leq M \leq 1000000
  • 1≤wi≤10000000001 \leq w_i \leq 1000000000
  • 所有 wiw_i 互不相同

【来源】

Library Checker(yosupo06) incremental_minimum_spanning_forest

数据下载

题目 30121 的公开数据

正在读取文件列表…

常用命令

题目 30121 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。