十三联测 #6
D
一张图,每个点选或不选,问所有情况下,两端点都被选的边的数量的 \(k\) 次方的和。
\(n,m\le 10^5,k\le 3\)。
考虑 \(k=3\) 的情况,考虑其组合意义,对于所有选点情况,选出 \(3\) 条可重复的边的方案数。
这样就可以拆贡献了,考虑这三条边是什么的情况。
a. 三条边重复; b. 两条边重复,另一条共一个端点; c. 两条边重复,另一条分离;
d. 没有重复,三条边分离; e. 没有重复,有两条边共端点; f. 菊花; g. 三元环; h. 链
需要简单的容斥。
关于三元环计数除了 bitset 加根号的做法,还有不需要 bitset 的。
考虑按照度数从大到小排序后,将边从度数大的定向到度数小的。
然后我们枚举 \(x\to y,y\to z\),检验 \(x\to z\) 是否存在边。分讨 \(y\) 出度的大小。
若 \(y\) 出度 \(\ge \sqrt m\),那么 \(y\) 只会被枚举不超过 \(\sqrt m\) 次,因为没有那么多的 \(x\),复杂度 \(O(m\sqrt m)\)。
若 \(y\) 出度 \(\le \sqrt m\),\(y\) 最多被枚举 \(m\) 次,复杂度 \(O(m\sqrt m)\)。