专栏文章

环计数

个人记录参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mip2tbmo
此快照首次捕获于
2025/12/03 05:14
3 个月前
此快照最后确认于
2025/12/03 05:14
3 个月前
查看原文
给定一张无向图 G=(V,E)G=(V,E),求其三元环个数。
考虑给这张图定向。先对 GG 中的节点排序,度数小的排在度数大的前面,如果度数相同则按编号排序,即 degi<degj(degi=degji<j)rki<rkj\text{deg}_i<\text{deg}_j\lor (\text{deg}_i=\text{deg}_j\land i<j)\Longrightarrow rk_i<rk_j
考虑强制 rkirk_i 小的向 rkirk_i 大的连边,令新图为 G=(V,E)G'=(V',E'),可以发现,原图中的三元环 (A,B,C)(A,B,C)(钦定 rkA<rkB<rkCrk_A<rk_B<rk_C)在 GG' 中只有一种可能:AB,AC,BCA\to B,A\to C,B\to C
然后这个直接枚举 AB,BCA\to B,B\to C 看是否存在 ACA\to C 就可以。复杂度 O(EE)O(|E|\sqrt{ |E|})
接下来是时间复杂度证明。
显然判定可以做到 O(1)O(1),而判定的次数为 (u,v)Ew[(v,w)E]\sum\limits_{(u,v)\in E'}\sum\limits_{w}[(v,w)\in E']
outi\text{out}_i 表示 GG' 中点 ii 的出度。显然左边那一部分枚举次数是 O(E)O(|E|) 的,只需要证明 outv\text{out}_v 是根号级别的就行。
定义 SuS_uv(u,v)Ev\mid (u,v)\in E'。显然根据 GG' 连边的方式,有 iSu,outudegudegi\forall i\in S_u,\text{out}_u\le\text{deg}_u\le\text{deg}_i
根据度数的性质 outuoutuiSudegi2E\text{out}_u\cdot \text{out}_u\le\sum\limits_{i\in S_u} \text{deg}_i\le 2|E|。最左边是 degi\deg_i 都取到 outu\text{out}_u 的情况。
outu2E\text{out}_u\le \sqrt{2|E|}
板子题 P1989。

接下来是求四元环个数。
和前面一样,我们对原图定向,构造 GG'。此时原图中四元环 (A,B,C,D)(A,B,C,D)(同样钦定 rkA<rkB<rkC<rkDrk_A<rk_B<rk_C<rk_D)在 GG' 中有三种可能:
我们令 fAf_A 表示 ABCA\to B\to C 的路径数量,gAg_A 表示 ABCA\gets B\to C 的数量。
显然 fAf_A 是可以 O(EE)O(|E|\sqrt{|E|}) 求的。
对于 gAg_A,考虑建立 GG' 的反图 GG'',枚举 (u,v)(u,v)E(u,v)\mid (u,v)\in E'',和 (v,w)(v,w)E(v,w)\mid (v,w)\in E' 即可。复杂度同样 O(EE)O(|E|\sqrt{|E|})。因为对于 vv,枚举 (v,w)(v,w)outv\text{out}_v,不超过 2E\sqrt{2|E|},枚举 (u,v)E(u,v)\in E''O(E)O(|E|) 的。
对于(1),方案数为 BfBgB\sum\limits_{B}f_B\cdot g_B,对于(2),方案数为 A(fA2)\sum\limits_{A}\binom{f_A}{2},对于(3),方案数为 C(gC2)2\dfrac{\sum\limits_{C}\binom{g_C}{2}}{2}。这里除以 22 是因为选择 CC 和选择 DD 都会计算一遍。
板子题 LibreOJ P191.

P9850 [ICPC 2021 Nanjing R] Ancient Magic Circle in Teyvat
gugugu.

评论

0 条评论,欢迎与作者交流。

正在加载评论...