灵魂滚烫, 命运冰凉|

fhq_treap

园龄:5年7个月粉丝:67关注:21

[学习笔记]无向图三元环计数

考虑每次枚举一个环起点,即考虑是否枚举(i,j),(j,k)是否有(i,k)成立。

考虑对其重新编号,对其按度数偏序连边。

考虑其大于n的不多于n个。

我们每次操作的时候实际上是对一个点枚举的复杂度为其出度乘入度。

知其为O(nn)

无向图三元环计数
#include<bits/stdc++.h>
#define N 300005

int n,m;

int u[N],v[N],in[N],vis[N],ans = 0;

std::vector<int>e[N];

int main(){
	scanf("%d%d",&n,&m);
	for(int i = 1;i <= m;++i)
	scanf("%d%d",&u[i],&v[i]),in[u[i]] ++ ,in[v[i]] ++ ;
	for(int i = 1;i <= m;++i){
		if((in[u[i]] == in[v[i]]) ? u[i] > v[i] : in[u[i]] > in[v[i]])
		std::swap(u[i],v[i]);
		e[u[i]].push_back(v[i]);
	}
	for(int i = 1;i <= n;++i){
		for(auto j : e[i])vis[j] = 1;
		for(auto j : e[i])
		for(auto k : e[j])
		if(vis[k])
		ans ++ ;
		for(auto j : e[i])
		vis[j] = 0;
	}
	std::cout<<ans<<std::endl;
}

本文作者:fhq_treap

本文链接:https://www.cnblogs.com/dixiao/p/15774680.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   fhq_treap  阅读(53)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
历史上的今天:
2021-01-07 [POI2002][HAOI2007]反素数
2021-01-07 [SDOI2012] Longge 的问题
2021-01-07 [TJOI2007] 可爱的质数
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起