#P9666. [ICPC 2021 Macao R] Link-Cut Tree

[ICPC 2021 Macao R] Link-Cut Tree

Description

宝宝刚刚学会使用一种称为“链接切割树”的数据结构来寻找图中的环,并决定尝试一下。宝宝得到一个有 nn 个顶点和 mm 条边的无向图,其中第 ii 条边的长度为 2i2^i。她需要找到一个长度最小的简单环。

一个简单环是原始图的一个子图,包含 kk (3kn3 \le k \le n) 个顶点 a1,a2,,aka_1, a_2, \cdots, a_kkk 条边,使得对于所有 1ik1 \le i \le k,在子图中存在一条边连接顶点 aia_ia(imodk)+1a_{(i \mod k) + 1}。简单环的长度是环中边的总长度。

Input Format

输入包含多个测试用例。输入的第一行包含一个整数 TT,表示测试用例的数量。对于每个测试用例:

第一行包含两个整数 nnmm (3n1053 \le n \le 10^5, 1m1051 \le m \le 10^5),表示原始图中的顶点数和边数。

接下来的 mm 行中,第 ii 行包含两个整数 uiu_iviv_i (1ui,vin1 \le u_i, v_i \le n),表示连接顶点 uiu_iviv_i 的一条边,其长度为 2i2^i。没有自环或重边。注意,图不一定是连通的。

保证所有测试用例中 nn 的总和和 mm 的总和都不会超过 10610^6

Output Format

对于每个测试用例输出一行。如果图中没有简单环,则输出“-1”(不带引号);否则输出 kk 个以空格分隔的整数,按升序表示简单环中最小长度的边的索引。可以证明最多只有一个答案。

请不要在每行末尾输出多余的空格,否则您的解答可能会被视为不正确!

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

Hint

第一个样例测试用例如下。边旁边的整数是它们的索引(括号外)和长度(括号内)。长度最小的简单环由边 22445566 组成,其长度为 22+24+25+26=1162^2 + 2^4 + 2^5 + 2^6 = 116

题面翻译由 ChatGPT-4o 提供。