「Note」广义串并联图

学学东西吧。

从平面图开始

定义

在一个平面图上,如果能够画出无向图 G 的图解,并且其中没有任何边的交叉,则称其为平面图。注意到有些图表面看上去是有边的交叉,但是可以通过重画满足上面的约定,这也算是平面图。

判定 / Kuratowski

首先有观察法,显然只适合手玩,下面介绍一种叫 Kuratowski 的方法。
给出一些操作的定义。

  • Kuratowski Graph: K3,3 是点数最少的非平面图,K5 是边数最少的非平面图。
  • 同胚操作: 在原图的边上增加或者删除度数为 2 的点,不影响图的平面性。简单理解为,把一条边替换成一个连接该边两点的新节点,或者是其逆向操作。
  • 同胚图:G1,G2 是两个无向图,G1,G2 互为同胚图当且仅当可以通过同胚操作将 G1,G2 变为同构的两个图。
  • Kuratowski Theory: 一个图是平面图当且仅当不存在和 K3,3,K5 同胚的子图。

广义串并联图

定义

  • m2n,是平面图
  • 不存在同胚于 K4 的子图

性质

通过若干次删 1 度点,缩 2 度点,叠合重边,最后一定会仅剩下一个点。

应用

显然,树和仙人掌都是广义串并联图,但是大多数问题不会给出这么舒服的形式。真正重要的是利用若干次删 1 度点,缩 2 度点,叠合重边这样的操作可以将图上问题的维护变得更简单,这样的方法是关键。
更具体的有,对于一张图 mn+k,其中 m 是边数,n 是点数,k 是一个较小的数,并且满足 kn。那么就可以使用上述方法把这张图缩成一个点数 Θ(k) 图。因为使用上述操作时 mn 的大小是不增的,当操作结束时,不存在二度点和一度点,所有点度数大于等于 3,于是有 2m3n,又有 mn+kn2k,m3k

题目

口胡题

给定 n 个点 m 条边的无向图定向后为 DAG 的方案数。
n,m1e5,mn10

待补。

JOI Open 2022 T3 「通学路 / School Road」

依次考虑所有部分分:

  • m40,n18:爆搜
  • mn13:于是开始缩,缩完之后 m42 可以直接爆搜。更具体的来说,保留 1n,一度点直接删,叠合重边的时候,如果两条边不一样,就令边权为 1,如果 1n 的最短路上存在了 1 的边,那么就有解,删二度点时,如果连接的两边中有一条为 1,那么边权就是 1,否则就是两边加和。
  • 图为点双:和正解其实做法一致,先把图剖成几个点双,判断是否有一个点双内满足就行了,

The End
「Ô mon âme, n'aspire pas à la vie immortelle, mais épuise le champ du possible.」