1079 : 双向链表练习题
时间限制Time Limit
5
秒Sec
内存限制Memory Limit
512
兆MB
提交次数Submitted
508 次Times
通过次数Solved
116 次Times
标准评测 Standard
从标准输入读入,结果写到标准输出。评测将输出拆成 token,与标准答案逐项比较,不按整段逐字节比对。
Read from standard input and write to standard output. The judge splits the output into tokens and compares them with the official answer; it does not compare raw bytes.
| 比对Compare | token 相同即通过。中间的空格、制表符、换行可多可少。Matching tokens pass. Extra spaces, tabs, or newlines between them are ignored. |
|---|---|
| 不同则错Differs | token 个数或内容不同即错误。23 与 2 3、02 与 2、2.0 与 2 均视为不同。A different token count or value is wrong. 23 vs 2 3, 02 vs 2, and 2.0 vs 2 all differ. |
| 输入Input | 标准输入,格式见题面。Standard input; format as in the statement. |
| 输出Output | 标准输出。Standard output. |
题目描述Description
Bobo 有 n 个列表 L1, L2, …, Ln. 初始时,Li 仅包含元素 i, 即 Li = [i]. 他依次执行了 m 次操作。第 i 次操作由两个整数 ai, bi 指定, 每次操作分为两步:
- Lai ← reverse(Lai + Lbi), 其中 ← 表示赋值,+ 表示列表的连接,reverse 表示列表的反转。例如,reverse([1, 2] + [3, 4, 5]) = [5, 4, 3, 2, 1].
- Lbi ← []. 其中 [] 表示空的列表。
输出 m 次操作后, L1 的元素。
输入格式Input
输入文件包含多组数据,请处理到文件结束。
每组数据的第一行包含两个整数 n 和 m.
接下来 m 行,其中第 i 行包含 2 个整数 ai, bi.
- 1 ≤ n, m ≤ 105
- 1 ≤ ai, bi ≤ n, ai ≠ bi
- n 的总和,m 的总和都不超过 5 × 105.
输出格式Output
对于每组数据,先输出 L1 的长度 |L1|,再输出 |L1| 个整数,表示 L1 的元素。
样例Sample
出题Author
ftiasch