【学习笔记】竞赛图
竞赛图(tournament):有 $\binom{n}{2}$ 条边的有向图
性质:
- 竞赛图强连通缩点后的 DAG 是一条链
- 竞赛图的强连通块存在一条哈密顿回路
- 竞赛图存在一条哈密顿路径
- 竞赛图 $size > 1$ 的强连通块中,大小为 $[3, size]$ 的简单环均存在
- 兰道定理(竞赛图判定定理):定义一个竞赛图的比分序列是把竞赛图每个点的出度从小到大排列得到的序列。一个长度为 $n$ 的序列 $s_1 \leq s_2 \leq s_3 \leq … \leq s_n$ 是合法比分序列当且仅当 $\forall i \in [1, n], \sum\limits_{j = 1}^i s_j \geq \binom{i}{2}$,且在 $i = n$ 时取等号,证明 非常巧妙!
计数:
- $n$ 阶竞赛图个数显然就是 $h_n = 2^{\binom{n}{2}}$ 啦
- 强连通 $n$ 阶竞赛图个数为 $f_n = h_n - \sum\limits_{i = 1}^{n - 1} f_i \binom{n}{i} h_{n - i}$,就枚举一个 SCC 连的都是出边。
生成函数加速:
令 $f_0 = 0$有:$h_n = \sum\limits_{i = 0}^n \binom{n}{i} f_i h_{n - i} + [n == 0]$
$H = FH + 1 \Rightarrow F = 1 - H^{-1}$
世界是个动物园
1 | 官方题解: |
这个“前往后连”不太准确,缩完是一条链,我们要找区间编号最小的有来自 $x$ 的边的 scc $L$,和编号最大的有去 $x$ 的边的 scc $R$,$[L, R]$ 这一段所有 scc 被缩为一个 scc。替罪羊或者 treap 动态维护编号(其实不用真的删除,搞一个并查集,将 fa 指向 $x$,把 $x$ 插到 $L$ 的位置就好了),线段树查询区间 min、max。用 double 是为了方便创造键值。