环计数问题

image

image

1. 三元环计数

就是在一个图上找出 \((u,v,w)\) 满足 \((u,v),(v,w),(w,u)\) 都有边的个数。

我们先给每个边定向,规定有度数小的边指向度数大的边,相等则从小编号指向大编号。可以证明这是一个 DAG。

假设有环,则要么度数一直增,要么度数相等,但编号一定不等,矛盾。

然后直接枚举 \(u\) 所连的 \(v\),再在 \(v\) 指向的点枚举 \(w\),判断一下即可。

复杂度是 \(\mathcal{O}(m\sqrt{m})\),比较神奇。

对于每一对 \((v,w)\)\(u\) 的数量都不超过 \(v\) 的入度 \(d^{-}(v)\)
\(d^-(v) \leq \sqrt{m}\),则复杂度为 \(\mathcal{O}(n\sqrt{m})\)
\(d^-(v) > \sqrt{m}\),则 \(d(w) \geq d(v) > \sqrt{m}\),这样的存在最多只有 \(\sqrt{m}\) 个,复杂度 \(\mathcal{O}(m\sqrt{m})\)

其实很类似根号分治。

I P1989 无向图三元环计数

板子。

代码

这个性质好像很牛,但不知到为什么。

posted @ 2024-08-27 18:29  oXUo  阅读(88)  评论(0)    收藏  举报
网站统计