NOIP2025专题-图论2 专题简记

HZOI

A 欧拉路径

概念:

1.有向图欧拉路径:图中恰好存在 1 个点出度比入度多 1(这个点即为 起点 S),1 个点入度比出度多 1(这个点即为 终点 T),其余节点出度=入度。

2.有向图欧拉回路:所有点的入度=出度(起点 S 和终点 T 可以为任意点)。

3.无向图欧拉路径:图中恰好存在 2 个点的度数是奇数,其余节点的度数为偶数,这两个度数为奇数的点即为欧拉路径的 起点 S 和 终点 T。

4.无向图欧拉回路:所有点的度数都是偶数(起点 S 和终点 T 可以为任意点)。

当然,图有欧拉路径,还必须满足将它的有向边视为无向边后它是连通的(不考虑度为 0 的孤立点),连通性的判断我们可以使用并查集或 dfs 等。

Warnings:

1.要求搜索并输出欧拉路径时要先搜先递归后压栈后输出,防止出现先搜到终点后回溯导致输出顺序出错的问题,先搜索后输出可以保证终点在栈底。

B 2-SAT

概念:

2-SAT,简单的说就是给出 n 个布尔方程,每个方程和两个变量相关,如 a∨b,表示变量 a,b 至少满足一个。然后判断是否存在可行方案,显然可能有多种选择方案,一般题中只需要求出一种即可。另外,¬a 表示 a 取反。

实现过程(原谅我乱用运算符)

1.转化。将形如\(a||b\) 的式子转化为\(!a\text{&&}b\)\(!b\text{&&}a\)

2.建图。将每对关系建立单向边。

3.跑tarjan求强连通分量。每个强连通分量内满足性相同。

4.求解。如果一个点的两种情况处于同一个强连通分量里说明无合法解。因为拓扑序越大越后遍历到,那么产生冲突就小,因此对于第 i 个变量的两种可能 i 与 i+n 取拓扑序更大的让他成立,注意 Tarjan 求出的是拓扑逆序因此反过来判断即可。到这里有人可能会有疑惑:产生冲突概率小就一定没有冲突吗?实际上是没有的。因为到这里你已经确定有解了,那么按照冲突最小的方式构造出的解一定是合法的。

F 交互题、竞赛图

概念:

1.竞赛图:有向完全图,有$n*(n-1)/2 $条边。通常由赢的一方指向输的一方。
结论

  • 假设已经知道了连边情况,我们把竞赛图进行强连通缩点,那么得到的有向无环图中每个节点会向自己后面的节点连边。严谨地说,有向无环图的最长链的节点个数等于这个图的节点个数,且最长链上的节点每个朝着自己后面的所有节点连边。
  • 原图中每个点会向新图中所处的强连通分量之后的强连通分量的所有点连边。
  • 对于这个有向无环图的唯一入度为 0 的节点,即拓扑序最小的节点,它里面的所有节点就是答案。
  • 前面的强连通分量的点的出度严格大于后面强连通分量的点的出度。

2.交互题:在对机器询问一定次数内获取答案。输出完后记得fflush(stdout) 或者cout.flush()

posted @ 2025-09-08 19:11  _dlwlrma  阅读(11)  评论(1)    收藏  举报