QOJ.ac

QOJ

時間限制: 3 s 記憶體限制: 256 MB 總分: 100

#4498. 平面图

统计

我们称一个无向图为平面图,如果存在一种将其画在平面上的方法,使得任意两条边除了端点外没有交点。例如,下图是一个平面图:

但下图不是一个平面图,因为可以证明,无论如何将其画在平面上,至少有两条边会产生非端点的交点:

对于一个平面图,它被边分割成若干个区域。例如,下面的平面图有 4 个区域(注意区域 1 是外部的无限大区域):

给定一个包含 $n$ 个顶点和 $m$ 条边的平面图。每个区域代表一个国家。你是设计师,想要在边上建造一些隧道,使得:从一个城市出发,可以通过经过隧道或经过城市到达任何其他城市(即:除非某条边上设有隧道,否则你不能穿过它)。例如,对于上图,你可以这样建造隧道:

在上图中,你可以通过经过隧道 1、穿过城市 1、经过隧道 3、穿过城市 4、最后经过隧道 2,从城市 2 到达城市 3。你可以验证从任何城市都可以到达其他任何城市。

你希望隧道数量尽可能少。请输出最少的隧道数量以及你建造隧道的边的编号。

输入格式

第一行包含一个整数 $T$ ($1 \le T \le 15$),表示测试用例的数量。

对于每个测试用例: 第一行包含两个整数 $n, m$ ($1 \le n \le 10^5, 0 \le m \le 2 \times 10^5$),分别表示顶点数和边数。 接下来 $m$ 行,第 $i$ 行包含两个整数 $u, v$ ($1 \le u, v \le n$),表示第 $i$ 条边的端点。第 $i$ 条边的编号为 $i$。

保证给定的图是一个平面图。但该图可能包含自环、重边,且图可能不连通。

输出格式

输出包含 $2T$ 行。

对于每个测试用例: 第一行包含一个整数 $f$,表示你必须建造的最少隧道数量。 第二行包含 $f$ 个用空格分隔的整数,表示建造隧道的边的编号。

如果对于固定的最少隧道数量,有多种建造隧道的方法,请输出字典序最小的答案。

样例

输入 1

1
5 7
1 1
1 2
1 3
3 4
3 4
2 4
2 5

输出 1

3
1 2 4

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.