若竞赛图存在环,则一定存在三元环。
大小为$n$($n>1$)的强连通块,大小为$[3,n]$的简单环均存在。
任意竞赛图都有哈密顿路径(经过每个点一次的路径,不要求回到出发点)。
增量构造:对于第$i$个点,要么放在第一个,要么从后往前找到第一个满足$j\rightarrow i$的,然后插在$j$的后面。
竞赛图存在哈密顿回路的充要条件是强联通。
先构造哈密顿路径,然后构造哈密顿回路。
维护链$v_1,\dots,v_k,\dots,v_i$,其中$v_k\rightarrowv_1$,然后考虑扩展到节点$i+1$来扩大环:
- $v_{i+1}\rightarrow v_1$,直接扩大
- 找到最小的$j$,满足$v_{i+1}\rightarrow v_{j} (j\le k)$,然后修改路径为$v_{i+1},v_j,\dots,v_k,v_1,\dots,v_{j-1},v_{k+1},\dots,v_i$
- 直接考虑下一个节点
1 | void gao(vector<int>& path) { |
强连通缩点后呈链状,拓扑序小的点向所有拓扑序大的点连边(因此可以直接根据强连通分量判断任意两点间的可达性)。
Dirac定理:$n$阶($n\ge3$)无向简单图,任意不相邻的两个顶点$v_i,v_j$,均有$d(v_i)+d(v_j)\gen$,则存在哈密顿回路。
先不断从首尾扩展,得到极大的路径$s,v_1,\dots,v_k,t$,若$s$和$t$有边则得到回路,否则一定存在$s\rightarrowv_{i+1},t\rightarrowv_i$(鸽巢原理),构造得到回路$s,v_{i+1},\dots,t,v_i,\dots,s$。如果该回路长度小于$n$,剩余点一定与回路中的某个点有边相连,从该处将环断开,然后重复扩展即可。
$n$阶($n\ge2$)无向简单图,任意不相邻的两个顶点$v_i,v_j$,均有$d(v_i)+d(v_j)\gen-1$,则存在哈密顿通路。
$n$阶($n\ge3$)无向简单图,任意顶点$v_i$,均有$d(v_i)\ge\frac{n}{2}$,则存在哈密顿回路。
兰道定理:将竞赛图的出度从小到大排序得到比分序列$s$,满足以下条件则合法:
$\forall 1\leq k \leq n,\sum \limits_{i=1}^k s_i \geq\binom{k}{2}$,且$k=n$时必须取等号。
先构造序列$a=(0,1,\dots,n-1)$,此时$a$的前缀小于$s$,后缀大于$s$(因为$a$和$s$的总和相同),然后找到第一个$a_l<s_l$,以及最后一个$a_u=a_l$(为了保证修改后$a$仍然有序),再找到第一个$a_v>s_v$,则$a_u<s_u\le s_v<a_v$,即$a_v\gea_u+2$,若$v\rightarrow u$,或$v\rightarrow p,p\rightarrowu$,就将相应边进行翻转,这样不断调整,最终$a=s$。
强连图竞赛图计数:$g_i=f_i-\sum_{j=1}^{i-1}\binom{i}{j}g_jf_{i-j}$,即枚举拓扑序最小的强连通分量的大小。