#P16797. [NWRRC 2025]Games of Chess

[NWRRC 2025]Games of Chess

G. 国际象棋聚会()

题目描述

国际象棋城中有 nn 位朋友和 nn 栋房屋,它们都从 11nn 编号。朋友 ii 居住在房屋 ii 中。

城市中有 mm 条双向道路连接这些房屋,所有房屋构成一个连通网络。

城市中还有 nn 个虚拟国际象棋俱乐部,编号为 11nn。每位朋友必须恰好选择一个俱乐部加入。不同朋友可以加入同一个俱乐部,也允许某些俱乐部没有成员。

当朋友 ii 举办国际象棋聚会时,所有满足下列条件的朋友都会参加:

  • 与朋友 ii 属于同一个俱乐部;
  • 其房屋与房屋 ii 之间有一条道路直接相连。

聚会人数还包括朋友 ii 本人。

如果聚会的总人数为偶数,那么这场聚会就是成功的,因为所有人都可以同时两两对弈。

请为每位朋友选择一个俱乐部,使每位朋友举办的聚会都成功;如果不存在这样的分配方案,则报告无解。

输入格式

本题包含多组测试数据。

第一行包含一个整数 tt,表示测试数据组数。

每组测试数据的第一行包含两个整数 n,mn,m,分别表示房屋数量和道路数量。

接下来 mm 行,每行包含两个整数 u,vu,v,表示房屋 uu 与房屋 vv 之间有一条双向道路。

保证:

  • uvu\ne v
  • 任意两栋房屋之间至多有一条道路;
  • 整张图连通。

输出格式

对于每组测试数据:

  • 如果不存在合法的俱乐部分配方案,输出一行 -1
  • 否则输出 nn 个整数 c1,c2,,cnc_1,c_2,\ldots,c_n,其中 cic_i 表示朋友 ii 加入的俱乐部编号。

如果有多种合法方案,输出任意一种即可。

数据范围

1t104,1\le t\le 10^4, 2n105,2\le n\le 10^5, n1m2×105,n-1\le m\le 2\times 10^5, 1cin.1\le c_i\le n.

所有测试数据中:

n105,m2×105.\sum n\le 10^5,\qquad \sum m\le 2\times 10^5.

样例

3
2 1
1 2
3 3
1 2
2 3
3 1
8 10
1 2
1 4
1 7
5 2
5 4
5 7
5 3
2 6
2 8
6 8
1 1
-1
3 3 6 6 6 2 6 2