划水一期

划水一期

一年四季都是划水的好季节呢~

2017.11.11

今天考了 NOIP Day 1 ,不知道 Day 2 还有什么奇怪东西,最近划水的有点多所以写的也是水货。

首先是关于 NOIP D1T1 的 pq-p-q 的说明:

关于这类问题很自然的考虑同余最短路,而这个题由于 (p,q)=1 所以说在 \bmod q 意义下最大的一个 dist 必然是 pq-p ,于是最大的不能被表示出的数必然是 pq-p-q ,证毕。

我觉得这样说明应该是在路上听到这个题也能给出答案了吧。(我也是睡觉的时候想到的)

(说这么水的内容求不喷T_T)


接下来是这两天看的内容:

定理 13 (BEST Theorem): 对于有至少一条欧拉回路的有多重图 G ,定义 s(G)G 的欧拉回路数量, c_t(G) 为以 $ t 为根的有根树数量( t 是汇点,即所有点都有且仅有一条到达 t 的路径),则:

s(G)=c_t(G)\prod_{i=1}^n (deg_i-1)!


先证:令 R 为一个确定了每个点的出边顺序(即 dfs 中枚举出边时的顺序)的有向多重图(原图为 G ), \phi(R):\text{DirectedMultigraph}\rightarrow\text{Euler Circuit of } G 为对图 R 运行算法后得到的欧拉回路,则 \phi(R) 是满射。

证明:首先显然 \phi(R) 是一个合法的欧拉回路(算法的正确性对点的出边顺序没有要求),那么需要证明每一个欧拉回路都能被这么得到。我们构造一个单射 \phi^{-1}(c) 即可。

Graph phiInverse(Edge[] c) {
	Graph G;
	for (int i = 0; i < c.length; ++i) {
		G.addEdge(c[i].x, c[i].y); //G[c[i].x].append(c[i].y);
	}
	return G;
}

根据原算法,phiInverse的正确性显然,证毕


证明(BEST Theorem):由于欧拉回路是循环同构的,我们不能直接任意地确定出边的顺序。按照普通处理环的方法我们固定其中的一个元素后再任意排列其他的元素。这里我们令 t 为欧拉回路的起点,固定每个点的最后一条出边,这些出边会形成一个环套树(森林)。我们可以发现它实际上必然形成一个环套树且这个环必然经过点 t (由于 dfs 一定会在环上的某个点停止而那个点又必须是 t 因此只能有一个经过 t 的环)。于是我们任意选定 t 的一条出边作为最后一条(由于循环同构选哪条都一样),其他边必然形成了一棵以 t 为根的有根树( t 为汇点),命题得证。


其实接下来才是我想说的部分:

定理 17(Kuratowski):图 G 是平面图当且仅当 G 不含有同胚于 K_5K_{3,3} 的子图。

感觉我看到这个定理都看傻了……完全没有证的头绪……(智力太低)

我看的证明的路线是这样的:

定理 17.1 :图 G 是平面图当且仅当它的每个点双连通分量都是平面图。

对双连通分量的数量归纳,选 G 的一个割点 u 出来,可以把问题递归到删去 u 后的所有连通分量(递归的时候要带着 u 一起),这样点双连通分量的数量必然会减少,并且可以容易的证明这是可平面的。

我们假设这个定理有一个极小的反例 G

定理 17.2 : G 是点双连通的。

这个容易证明,不然的话取那个不可平面的点双会更小。

定理 17.3 : G 中没有度数为2的点。

证明:令这个点 w 连接的点是 u,v 。若 u,v 之间没边,可以直接把 (u,w),(v,w) 直接缩成 (u,v) 不会有任何影响。若 u,v 之间有边,由于 G 是极小的,因此 G\backslash w 必然是可平面的,而把 (u,w),(v,w) 贴着 (u,v) 画,显然是不会改变图的可平面性的,于是 G 也是平面图,矛盾。

定理 17.4 : G 中必然有一条边删去后还是点双连通的。

证明:只有一种图不符合这个条件,就是一个 n 个点的环,只要不是纯粹的环,拉出图中的一个极大环,必然存在一条连接环上某两个点的非环边,删掉它不会改变整个图的点双连通性。

由于 G 是极小的, G\backslash (u,v) 必然是可平面的。而 u,v 必然在某些环上(在同一个点双里),我们要找到决定可平面性的那个环。

关于为什么一定有这样一个环,我们考察 G\backslash (u,v) 在加入 (u,v) 时必然会在一个环的地方产生不可平面的冲突,于是我们把整个图只保留和这个环相关的部分,其余的部分全都缩到边上去。应该对于这个环上的部分,也是不可平面的。

我们把那个环画出来 u_0=u,u_1,\ldots ,u_k=v,\ldots u_l ,我们可以说明 u_0,u_1,\ldots u_k 之间没有边, u_k,u_{k+1},\ldots u_l,u_0 之间也没有。对于这两部分之间的边,我们可以断言只有四种情形:

断言:

由于能不能平面区别就在 (u,v) 上,所以其他的部分要把 u,v 分割开。必然存在某个上半部分的点 u_i 可以到达下半部分的 u_j

把环分成四个部分 u_1,\ldots u_{i-1}u_{i+1},\ldots u_{k-1}u_{k+1},\ldots u_{j-1}u_{j+1},\ldots u_l ,分别记为 a,b,c,d ,四种情况记为 1,2,3,4 。


首先第一种情况是显然不可平面的,所以不能有 a-c,b-d 的边,所有其他的上下两部分之间的边都可以被拢到两边去,所以可以忽略不计。接下来就是 u,v 连出去的点 w ,首先如果 w 没有连到环上的点, uv 这三者中的至少两个, w 就是毫无意义的。


(1) w 连接了 u,v :如果它所连接的其他点没有把 u,v 分割开的话就没有意义了,( a-c,b-da-d,b-c,(a\cup b)-u_j,u_i-(c\cup d)u_i-u_j )三种情况分别代表着 1,2,4 ,都在我们所说的四种情况中。


(2) w 连接了 u 和环上 上/下部分中的某个点:那么它所连接的点必然能把 w 和另外一半连接起来的,( a-c,b-da-d,b-c,(a\cup b)-u_j,u_i-(c\cup d)u_i-u_j )三种情况分别代表着 1,2,3 。


而这四种情形都可以规约到 K_5K_{3,3} 上。

感觉自己看这些的时候老是迷迷糊糊的……完全想不到严谨的说明方法呢(哭),再试着理解一下吧。

封面大图:


编辑于 2017-11-12

文章被以下专栏收录