#SLT09C. 2026年S组模拟赛10连测第9场-T3 程老师的巡检路线
2026年S组模拟赛10连测第9场-T3 程老师的巡检路线
| 项目 | 内容 |
|---|---|
| 输入文件名 | euler.in |
| 输出文件名 | euler.out |
| 可执行文件名 | euler |
| 每个测试点时限 | 1.0 秒 |
| 内存限制 | 512 MiB |
| 测试点数目 | 20 |
| 是否等分 | 是 |
结果比较方式为全文比较(过滤行末空格及文末换行)。
题目描述
厂区里有 个站点,编号 到 ,站点之间铺了 条双向通道,每条通道连接两个不同的站点。同两个站点之间可能铺有不止一条通道。
巡检员的日常规程是:每天从 号站点出发,沿通道走遍全厂,每条通道恰好走一遍,走完回到 号站点。收工时把途经的站点按先后顺序记成一行,就得到当天的巡检路线:它由 个站点编号组成,第一个和最后一个都是 。
程老师要安排的是这样一条路线。有的厂区排不出这样的路线,这时要如实报告没有路线。如果一个厂区能排出多条路线,程老师只留其中字典序最小的那一条:两条路线比较时,把途经站点的编号序列从头开始逐位对比,第一个不相同的位上编号小的那条更小(这种比法称为字典序比较)。
现在给出厂区的站点与通道清单,请你算出程老师要的那条路线。
输入格式
从文件 euler.in 中读入数据。
第一行两个整数 和 ,分别表示站点数与通道数。
接下来 行,每行两个整数 和 ,表示一条连接 号站点与 号站点的双向通道。。同两个站点之间的多条通道在输入中各占一行。
输出格式
输出到文件 euler.out 中。
一行。若这样的巡检路线不存在,输出 -1;否则输出 个整数,为途经站点的编号序列,相邻两个整数之间用一个空格分隔,第一个与最后一个整数都是 。
样例
3 3
1 2
2 3
1 3
1 2 3 1
解释
三条通道是 –、–、–。从 号站点出发先走 – 这条,到达 号站点后剩下能走的只有 –,到 号站点后只剩 –,走完正好回到 号站点,三条通道各走过一遍,记下来是 。若出发时先走 –,接下去依次是 –、–,记下来是 。两条都符合规程,逐位对比时第二位是 与 ,所以字典序最小的是 。
2 1
1 2
-1
解释
厂区里只有一条通道,连接 号与 号站点。从 号站点出发只能走这条通道到 号站点,到了 号站点以后没有别的通道可走,既去不了别处,也回不到 号站点。因此排不出符合规程的路线,输出 -1。
数据范围
对于所有测试数据,保证:
- ,;
- ,;
- 同两个站点之间可能有多条通道。
| 测试点编号 | 的上界 | 特殊性质 |
|---|---|---|
| , | 无 | |
| , | ||
| , | ||
| , | ||
| , | ||
| , | A | |
| B |
特殊性质 A:所有站点都被通道用到,每个站点恰好连着两条通道,并且从任意一个站点出发沿着通道走下去,会不重复地经过全部站点后回到出发的那个站点。
特殊性质 B:以 号站点为一端的通道至少有 条。
- ID
- 3803
- 类型
- 传统题
- Time Limit
- 1000ms
- Memory Limit
- 512MiB
- 上传者