#P16449. PM10384王国地图
PM10384王国地图
题目背景
字节王国准备举办一年一度的城镇交流节。地图绘制师林墨和助手安澜受命重新制作一张道路示意图,方便来访者查看各城镇之间的交通关系。
旧地图把所有城镇随意画在纸上,许多道路在图中交叉,参观者经常把交叉点误认为新的路口。为了让地图一目了然,林墨决定把所有城镇分列在两条竖直线上,每条道路都画成连接左右两列城镇的直线段,并且任何两条没有公共端点的道路都不能相交。
王国现有的道路没有形成环,但并不一定能全部画进这种新地图。若无法保留所有道路,安澜只能从地图中删去一部分道路。为了尽量完整地呈现交通网络,他们希望删去的道路数量最少;若有多种最优方案,则采用道路编号序列字典序最小的一种。
题目描述
王国中共有 个城镇,编号为 ,并有 条双向道路。道路按照输入顺序编号为 。
原道路图保证是一片森林,即不存在环。
你需要删去若干条道路,使剩余道路能够按照下列方式绘制:
- 画出两条互相平行的竖直线;
- 每个城镇必须恰好放在其中一条竖直线上;
- 每条剩余道路必须画成连接左右两列城镇的直线段;
- 任意两条道路除了可能共享端点外,不得相交。
请在删去道路数量最少的前提下,输出字典序最小的被删道路编号序列。
由于道路编号互不相同,输出序列应按从小到大的顺序排列。
输入格式
第一行包含两个整数 ,分别表示城镇数量和道路数量。
接下来 行,第 行包含两个整数 ,表示编号为 的道路连接城镇 和 。
输出格式
第一行输出一个整数 ,表示需要删去的道路数量。
若 ,第二行输出 个严格递增的整数,表示被删道路的编号。
若 ,无需输出第二行。
数据范围
- ;
- ;
- ;
- 所有道路互不相同;
- 输入图中不存在环。
字典序说明
对于两个长度相同的整数序列 和 ,若在第一个不同的位置上 的元素更小,则称 的字典序更小。
本题首先要求删去的道路数量最少,因此参与字典序比较的候选序列长度一定相同。
样例 1
输入
5 3
0 1
1 2
2 3
输出
0
说明
这三条道路本身就可以无交叉地画在两列城镇之间,因此不需要删去任何道路。
样例 2
输入
7 6
0 1
1 2
2 3
3 4
5 6
2 5
输出
1
0
说明
删去任意一条道路后都可以完成合法绘制。为了使答案字典序最小,应删去编号为 的道路。
样例 3
输入
20 19
8 17
9 12
4 7
2 7
2 19
3 12
6 12
1 9
5 18
0 12
6 16
0 11
3 14
10 15
12 13
13 18
13 19
15 17
15 19
输出
4
1 3 5 14
样例 4
输入
1 0
输出
0