1724. 弦图
时间限制:1000 MS 内存限制:64 MB
题目描述
## 题目描述 给出一个$ n$ 个顶点和$ 2*(n-1) $条边组成的有向图,对于图上的每条有向边 $(u, v) $都存在一条与其相反的边 $(v, u)$。换句话说这个图由一颗树衍生而出,是把树上的每一条边都被拆成了两条方向相反的边。 定义弦为两条相邻的边,且满足其中一条边的终点恰是另一条边的起点。例如对于两条边 $(x, y) $和 $(y, w)$,这两条边就是一条弦。边 $(u, v) $和边 $(v, u)$ 也是一条弦。若两个弦有公共的边,那就称这两个弦相交,否则为不相交。例如对于两条弦 ${(a,b),(b,c)} $和$ {(b,c),(c,d)}$ 就是相交的,因为共享了$(b,c)$ 这条边。 显然对于一个由树衍生出的图来说,一定可以把图上所有的边分为$ n$ 条互不相交的弦。 现在这个图上因为某些原因缺失了$2*k $条边,这样就只剩下$m=2*(n-1)-2*k$ 条边了,你能否将图上剩余的边分为$ m/2 $条互不相交的弦? 对于某个缺失了一些边的图的分法如下(相同颜色的边代表一条弦):  ## 输入格式 第一行给出两个正整数$ n, m$代表图上的顶点数和剩余的边数 接下来$ m$ 行每行两个正整数 $u_i, v_i$代表一条有向边 ## 输出格式 若有拆分方案,先在第一行中输出一个 $\texttt{Yes}$,然后接下来每行一条弦。 若有多种拆分方案,输出任意一种即可 否则在一行中打印一个$ \texttt{No}$ ## 数据范围 ... ## 输入 ```in1 5 6 1 2 2 1 1 5 2 3 2 4 4 2 ``` ## 输出 ```out1 Yes 1 2 2 3 2 1 1 5 2 4 4 2 ``` ```in2 4 4 2 1 2 3 2 4 4 2 ``` ```out2 No ``` ## 提示 * 子任务1为7分,满足$ n \le 20, m \le 20$ * 子任务2为10分,满足$ n \le 200$ * 子任务3为11分,满足 $n \le 3000, m = 2 \times n - 4$ * 子任务4为29分,满足$ n \le 3000$ * 子任务5为11分,满足$ n \le 150000, m = 2 \times n - 4$ * 子任务6为32分,满足$ n \le 150000$