#P6255. [ICPC 2019 WF] Dead-End Detector
[ICPC 2019 WF] Dead-End Detector
Description
你所在家乡的市政委员会决定改善道路标志的设置,特别是对于死胡同的标志。他们给了你一张道路地图,你需要确定在哪里设置标志来标记死胡同。他们希望你使用尽可能少的标志。
这张道路地图是由通过双向街道连接的多个地点组成的。以下规则描述了如何完成死胡同标志的设置。考虑一条街道 连接地点 和另一个地点。如果从 进入 后,无法在不掉头的情况下返回 ,则在 的 入口处设置一个死胡同标志。掉头是指立即反向的 180 度转弯。
为了节省成本,你决定不安装冗余的死胡同标志,具体规则如下。考虑一条在 入口处有死胡同标志的街道 和另一条在 入口处有死胡同标志的街道 。如果从 进入 后,可以在不掉头的情况下到达 并进入 ,那么 的 入口处的死胡同标志是冗余的。参见图 E.1 以获取示例。

图 E.1:示例输入的说明,指示放置非冗余死胡同标志的位置。
Input Format
输入的第一行包含两个整数 和 ,其中 是地点的数量, 是街道的数量。接下来的 行中的每一行包含两个整数 和 ,表示有一条双向街道连接地点 和 。输入中的所有地点对都是不同的。
Output Format
第一行输出 ,表示安装的死胡同标志的数量。在接下来的 行中,每行输出两个整数 和 ,表示在连接地点 和 的街道的 入口处应安装一个死胡同标志。描述死胡同标志的行必须按 位置升序排序,若有相同则按 位置升序排序。
6 5
1 2
1 3
2 3
4 5
5 6
2
4 5
6 5
8 8
1 2
1 3
2 3
3 4
1 5
1 6
6 7
6 8
3
1 5
1 6
3 4
Hint
来源:ICPC 世界总决赛 2019 问题 E。
题面翻译由 ChatGPT-4o 提供。
京公网安备 11011102002149号