「Cfz Round 5」Mata rainen
题目背景
[English statement](https://www.luogu.com.cn/problem/U517657). **You must submit your code at the Chinese version of the statement.**
---
**如您希望对本题难度评分、数据强度等事项提出宝贵意见,请移步 [关于本题难度评分、数据强度等事项的说明](https://www.luogu.com.cn/discuss/1030705),而不要新开帖子!**(2024.12.30 rui_er 添加,本条保留至 2025.1.31)
---
题目名称意为:明年见。
小 R 是一个正在上高三的女孩子。她在升入高三的暑假复习了[《种树郭橐(tuó)驼传》](https://baike.baidu.com/item/%E7%A7%8D%E6%A0%91%E9%83%AD%E6%A9%90%E9%A9%BC%E4%BC%A0),便编出了这道与树有关的题。
在把这道题目丢给出题组后,她决定把全部时间和精力投入到高考的旅程中,期待在 2025 年的暑假在算法竞赛中与大家再会。
题目描述
请判断是否存在一棵树满足如下条件。若存在,请尝试给出构造。
树中包含 $n$ 个结点,编号为 $1\sim n$。另外,给定 $m$ 个点对 $(s_i,t_i)$,要求树上这 $m$ 条从点 $s_i$ 到点 $t_i$ 的路径覆盖每条边**恰好**一次 $^\dagger$。
**若你正确判断了是否有解,但不会构造出这棵树,也可以获得一定的分数,详见【评分方式】。**
$\dagger$ 称从点 $s$ 到点 $t$ 的路径覆盖一条边 $(u,v)$,当且仅当边 $(u,v)$ 在点 $s$ 到点 $t$ 的最短路径上。
输入输出格式
输入格式
第一行包含两个整数 $n,m$,表示这棵树的点数和给出的点对数。
接下来 $m$ 行,每行两个整数 $s_i,t_i$,表示一个点对。
输出格式
第一行输出一个字符串 `Yes` 或 `No`(大小写不敏感),表示是否有解。
若有解,继续输出 $n-1$ 行,每行包含两个整数 $u_i,v_i$,描述一条边。**你需要保证 $\bm{1\le u_i,v_i\le n}$ 且所有边构成一棵树。**
输入输出样例
输入样例 #1
6 2
1 2
3 4
输出样例 #1
Yes
1 5
2 5
3 5
4 6
5 6
输入样例 #2
3 3
1 2
2 3
1 3
输出样例 #2
No
说明
#### 「样例解释 #1」
![](https://cdn.luogu.com.cn/upload/image_hosting/rgnwakkq.png)
左上图为样例输出中给出的树。边 $(1,5),(5,2)$ 被路径 $(1,2)$ 覆盖,边 $(3,5),(5,6),(6,4)$ 被路径 $(3,4)$ 覆盖,符合题目要求。
右上图中边 $(5,6)$ 被路径 $(1,2)$ 和 $(3,4)$ 覆盖,不符合题目要求。
左下图中边 $(5,6)$ 未被任何路径覆盖,不符合题目要求。
右下图不是一棵树,不符合题目要求。
#### 「样例解释 #2」
可以证明不存在符合要求的树。
#### 「评分方式」
本题采用自定义校验器(Special Judge)进行评测。
对于每个测试点:
- 若第一行格式错误或与答案不匹配(大小写不敏感),得 $0\%$ 的分数。
- 若第一行答案正确且为 `No`,得 $100\%$ 的分数。
- 若第一行答案正确且为 `Yes`,**但后 $n-1$ 行格式错误**,得 $0\%$ 的分数。
因此,**请务必保证输出为一棵树**。
- 若第一行答案正确且为 `Yes`,后 $n-1$ 行格式正确但树不符合要求,得 $20\%$ 的分数。
- 若第一行答案正确且为 `Yes`,后 $n-1$ 行格式正确且树符合要求,得 $100\%$ 的分数。
也就是说,对于第一个样例,在正确输出 `Yes` 的基础上,输出左上图可以得到满分,输出右上图、左下图可以得到 $20\%$ 的分数,输出右下图不能得到任何分数;对于第二个样例,正确输出 `No` 即可得到满分。
#### 「数据范围」
对于所有测试数据,保证:
- $2\le n\le 3\times 10^5$;
- $1\le m\le 3\times 10^5$;
- $1\le s_i,t_i\le n$ 且 $s_i\ne t_i$。
**本题采用捆绑测试。**
- Subtask 0(10 points):$n\le 3$,$m\le 3$。
- Subtask 1(10 points):$n\le 10$,$m\le 10$。
- Subtask 2(20 points):$m=1$。
- Subtask 3(10 points):$n\le 300$,$m\le 300$。
- Subtask 4(10 points):$n\le 2\times 10^3$,$m\le 2\times 10^3$。
- Subtask 5(20 points):$m\le 2\times 10^3$。
- Subtask 6(20 points):无特殊限制。
#### 「Hack 数据」
本题于赛后添加了部分 Hack 数据。这些数据均满足 Subtask 6 对数据规模的限制,他们被添加到 Subtask 7 中。这些数据不计分,但只有通过所有数据,才算做 AC 本题。
- Subtask 7(0 points):赛后添加的 Hack 数据。