跳转至

计数问题

不相交路径

题意

一个有向无环图,给定四个点 \(a,b,c,d\),求出有多少对路径 (\(a\to b, c\to d\)) 满足两条路径没有公共点。(\(1 \le n\le 200\)\(1 \le m \le 20000\))

题解

\(O(nm)\) 处理出任意两点间路径数量 \(f_{i,j}\),枚举起点赋值为 \(1\) 然后按拓扑序向后转移即可。

设所求答案为 \(\textit{ans}\),两条路径 \(a \to b,c \to d\) 有交点的对数为 \(\textit{sum}\),运用补集转化,则有: $$ \textit{ans} = f_{a,b} f_{c,d}-\textit{sum} $$ 设 \(g_x\) 为两条路径 \(a \to x,c \to x\) 没有交点的对数,那么枚举第一个相交的点,有: $$ \textit{sum} = g_x f_{x,b} f_{x,d} $$ 再次运用补集转化,枚举第一个相交的点,有: $$ g_x = f_{a,x} f_{c,x} - \sum_y g_y f^2_{y,x} $$ 按照拓扑序计算即可进行转移,总时间复杂度 \(O(nm+n^2)\)

连通图计数

题意

\(n\) 个点带标号的连通图有多少个。(\(1 \le n \le 2000\))

题解

使用补集转化,对于不连通的方案,枚举 \(1\) 号点所在连通块的大小,有: $$ f_i = 2^{\binom{n}{2}} - \sum_{j=1}^{i-1}\binom{i-1}{j-1}f_j 2^{\binom{i-j}{2}} $$ 时间复杂度 \(O(n^2)\)

二分图计数

题意

\(n\) 个点带标号的二分图有多少个。(\(1 \le n \le 2000\))

题解

先算出 \(i\) 个点带标号的二分图的黑白染色方案之和 \(g_i\),相当于选一些点当黑点,然后黑点白点之间的边任意连: $$ g_i=\sum_{j=0}i\binom{i}{j}2{j(i-j)} $$

回到页面顶部