#ATarc108c. [ARC108C] Keep Graph Connected

[ARC108C] Keep Graph Connected

题目描述

给定一个包含 NN 个编号为 11NN 的顶点和 MM 条编号为 11MM 的边的连通无向图。该图中可能存在重边,但不存在自环。

每条边都带有一个标签,该标签是 11NN 之间的整数。第 ii 条边连接顶点 uiu_iviv_i,其标签为 cic_i

你需要在每个顶点上写下一个 11NN 之间的整数(不同顶点可以写相同的数),然后仅保留满足以下条件的边,其余的边都要删除。

条件:设该边两端顶点上写的整数分别为 xxyy,则 xxyy恰好有一个等于该边的标签。

删除不满足上述条件的边后,若图仍然连通,则称这种顶点赋值方式为好的赋值方式。请判断是否存在好的赋值方式,若存在,请给出一个例子。

输入格式

输入按以下格式从标准输入读入。

NN MM
u1u_1 v1v_1 c1c_1
\vdots
uMu_M vMv_M cMc_M

输出格式

如果不存在好的赋值方式,输出 No
如果存在,输出 NN 行,第 ii 行输出顶点 ii 上写的整数。只要是好的赋值方式即可。

样例 1

输入

3 4
1 2 1
2 3 2
3 1 3
1 3 1

输出

1
2
1

说明/提示

限制条件

  • 2N1052 \leq N \leq 10^5
  • N1M2×105N-1 \leq M \leq 2 \times 10^5
  • 1ui,vi,ciN1 \leq u_i, v_i, c_i \leq N
  • 给定的图是连通的
  • 图中没有自环

样例解释 1

  • 在顶点 1,2,31,2,3 上分别写 1,2,11,2,1
  • 11 连接顶点 1,21,2,标签为 11
  • 只有顶点 11 上的数等于标签 11,所以边 11 保留。
  • 22 连接顶点 2,32,3,标签为 22
  • 只有顶点 22 上的数等于标签 22,所以边 22 保留。
  • 33 连接顶点 1,31,3,标签为 33
  • 两端顶点上的数都不等于标签 33,所以边 33 被删除。
  • 44 连接顶点 1,31,3,标签为 11
  • 两端顶点上的数都等于标签 11,所以边 44 被删除。
  • 删除边 3,43,4 后,图仍然连通,因此该赋值方式是好的赋值方式。

由 ChatGPT 4.1 翻译