热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

四元环统计

前置知识:三元环统计题意:给定无向图,求图中四元环的数量。解法:首先对图重定向,重定向规则为度数大的指向

前置知识:三元环统计



题意:

给定无向图,求图中四元环的数量。

解法:

首先对图重定向,重定向规则为度数大的指向度数小的,度数相同时编号大的指向编号小的,
这样构造出的新图一定是有向无环图。

四元环和三元环不同,
主要体现在对于四元环,有以下两种情况:
在这里插入图片描述
对于右边的那种情况,按照三元环那样的做法是枚举不到的。

观察发现两种四元环都有如下共性,也就是四元环中最多只有一个点的出度为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)



推荐阅读
author-avatar
笑看人世情9
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有