AT_joig2025_d 最悪の記者 5 (Worst Reporter 5)

题目描述

水獭"ウソ太郎"是一名新闻记者,正在采访附近即将举行的大型马拉松比赛。 本次比赛共有 $N$ 名选手参赛,选手们编号为 $1$ 到 $N$。ウソ太郎在采访过程中将以下信息记录在了笔记中: - 在比赛开始时,$N$ 名选手各自拥有 $1$ 到 $N$ 中某一名次,且这些名次互不相同。 - 排名变化共发生了恰好 $M$ 次。在第 $i$ 次($1 \leq i \leq M$)排名变化时,选手 $A_i$ 和选手 $B_i$ 的名次发生了交换。在每一次排名变化中,发生交换的两位选手的排名差的绝对值均为 $1$。 - 不会有多次排名变化同时发生。 ウソ太郎想在报纸上刊登每位选手最终名次的“排名表”。所谓排名表,是一个长度为 $N$ 的序列,其中第 $j$ 项($1 \leq j \leq N$)表示最终获得第 $j$ 名的选手编号。 但是ウソ太郎不仅没有记录下排名表,甚至都没有记录每次变动中到底是谁上升了名次。因此,ウソ太郎决定,从所有与笔记内容不矛盾的排名表中,选择字典序最小的一个进行报道。 对于两个长度为 $N$ 的序列 $(a_1, a_2, \dots, a_N)$ 和 $(b_1, b_2, \dots, b_N)$,称第一个序列“字典序更小”,当且仅当存在某个整数 $k$($1 \leq k \leq N$),同时满足: - 对于所有整数 $l$($1 \leq l \leq k-1$),有 $a_l = b_l$; - $a_k < b_k$。 现已给出选手人数 $N$ 及笔记中记录的每次名次变动的信息,请判断是否存在与笔记内容不矛盾的排名表,并在存在时输出字典序最小的有效排名表。

输入格式

输入为如下格式: > $N$ $M$ $A_1$ $B_1$ $A_2$ $B_2$ > $\vdots$ > $A_M$ $B_M$

输出格式

若不存在与笔记内容不矛盾的排名表,则输出一行 `No`。 若存在符合要求的排名表,则用 $N+1$ 行输出: - 第 $1$ 行输出 `Yes`。 - 第 $1+j$ 行($1 \leq j \leq N$)输出最终获得第 $j$ 名的选手编号。

说明/提示

## 子任务 1.($13$ 分)$N \leq 8$,$M \leq 8$。 2.($16$ 分)$A_1,A_2,\dots,A_M,B_1,B_2,\dots,B_M$ 均为互不相同的数。 3.($29$ 分)$N \leq 1\,000$,$M \leq 1\,000$。 4.($23$ 分)对于第 $i$ 次($2 \leq i \leq M$)排名变动,$A_i$ 和 $B_i$ 至少有一人并未出现在 $A_1, A_2, \dots, A_{i-1}, B_1, B_2, \dots, B_{i-1}$ 之中。 5.($19$ 分)无附加约束。 ## 样例解释 1 假设比赛开始时,各名次对应的选手编号为 $(1,2,3,5,4)$(按第 $1$ 名至第 $N$ 名)。 此时,经过 $5$ 次排名变动,各轮结果如下: 1. 第 $1$ 次:第 $1$ 名的选手 $1$ 与第 $2$ 名的选手 $2$ 交换。交换后为 $(2,1,3,5,4)$。 2. 第 $2$ 次:第 $5$ 名的选手 $4$ 与第 $4$ 名的选手 $5$ 交换。交换后为 $(2,1,3,4,5)$。 3. 第 $3$ 次:第 $3$ 名的选手 $3$ 与第 $4$ 名的选手 $4$ 交换。交换后为 $(2,1,4,3,5)$。 4. 第 $4$ 次:第 $4$ 名的选手 $3$ 与第 $5$ 名的选手 $5$ 交换。交换后为 $(2,1,4,5,3)$。 5. 第 $5$ 次:第 $2$ 名的选手 $1$ 与第 $3$ 名的选手 $4$ 交换。交换后为 $(2,4,1,5,3)$。 因此,最终排名表为 $(2,4,1,5,3)$。 在所有不矛盾的排名表中,没有比 $(2,4,1,5,3)$ 字典序更小的结果。因此,输出 $(2,4,1,5,3)$。 此输入例同时满足子任务 $1,3,5$ 的约束。 ## 样例解释 2 不存在与笔记内容不矛盾的排名表。 此输入例同时满足子任务 $1,3,5$ 的约束。 ## 样例解释 3 此输入例满足所有子任务的约束。 ## 样例解释 4 此输入例满足子任务 $1,3,4,5$ 的约束。 ## 数据范围与约定 - $2 \leq N \leq 500\,000$。 - $1 \leq M \leq 500\,000$。 - $1 \leq A_i < B_i \leq N$($1 \leq i \leq M$)。 - 所有输入均为整数。 由 ChatGPT 5 翻译