前置知识:三元环统计
题意:
给定无向图,求图中四元环的数量。
解法:
首先对图重定向,重定向规则为度数大的指向度数小的,度数相同时编号大的指向编号小的,
这样构造出的新图一定是有向无环图。
四元环和三元环不同,
主要体现在对于四元环,有以下两种情况:
对于右边的那种情况,按照三元环那样的做法是枚举不到的。
观察发现两种四元环都有如下共性,也就是四元环中最多只有一个点的出度为2:
那么四元环可以被表示为:
为了消除之前发现的两种四元环的影响,下面部分考虑在无向图上枚举。
将每个点按照度数进行排名,排名规则与重定向规则相同,度数大的点排名大。
设点 i 的排名为rk[i]。
枚举点x,枚举原图中x的相邻点y,枚举新图中与y相邻的点z,
如果rk[z]原理:
1.为什么需要rk[z] 因为两种合法的四元环,一定是rk[z]
由上图,x->y,y->z,因此rk[x]>rk[y]>rk[z],即rk[z]同时也是为了防止以下不合法情况出现:
如果不加判断,可能会出现以上情况,原因是下面部分是基于无向图枚举的。
复杂度:
O(m*sq)