下笔春蚕食叶声。

CF527E Data Center Drama

搬运一下前几天发在Luogu的、、

题意:给出一个无向简单图,然后你自己再加一点边,然后你给他们定向,要使得每个点的出度和入度都是偶数。输出加的边最少的任意方案。

先提出一种构造方案。

  • 我们发现:对于一个有偶数条边、有欧拉路径的图,以 \(a\rightarrow b\leftarrow c\rightarrow d\leftarrow ...\rightarrow a\) 的方式定向,可以使得每个点的出度和入度都是偶数。(因为每次访问一个点都会使得它的入度/出度 +2)。
  • 对于一个奇数条边的有欧拉路径的图,随便在某个点加个自环,就变成了一个偶数条边的图。
  • 把原图加成一个有欧拉路径的图:考虑一个图只可能有偶数个奇点,那么把奇点配对相连即可。

梳理一下,就是我们先把奇点配对相连,然后如果有奇数条边就在随便哪个节点加个自环。然后找一条欧拉路径就行了。

正确性:

  • 定向前答案的图一定是一个有欧拉路径的图,否则它存在点度数不是奇数,定向后也不可能入度+出度是偶数。如果原图不是那必须得加边。显然你加的边数已经是最少的了
  • 一个奇数条边的图,定向后不可能所有点都入度+出度是偶数,所以必须加边,那就加一条自环,也是最少的。
posted @ 2022-03-24 18:38  ACwisher  阅读(32)  评论(0编辑  收藏  举报