HDU 6184 Counting Stars 经典三元环计数
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6184
题意:
n个点m条边的无向图,问有多少个A-structure
其中A-structure满足V=(A,B,C,D) && E=(AB,BC,CD,DA,AC)
解法:
可以看出A-structure是由两个有公共边的三元环构成的,然后就变成了这道题。
http://www.cnblogs.com/spfa/p/7495438.html
#include <stdio.h>
#include <set>
#include <math.h>
#include <vector>
#include <algorithm>
using namespace std;
const int maxn = 100005;
typedef long long LL;
vector <int> G[maxn];
set <LL> s;
int n, m, vis[maxn], linker[maxn], out[maxn];int main()
{while(scanf("%d %d", &n, &m) != EOF){s.clear();for(int i=1; i<=n; i++){vis[i] = out[i] = linker[i] = 0;G[i].clear();}for(int i=1; i<=m; i++){int x, y;scanf("%d %d", &x,&y);G[x].push_back(y),out[x]++;G[y].push_back(x),out[y]++;s.insert((LL)x*n+y);s.insert((LL)y*n+x);}int B = sqrt(m);LL ans = 0;for(int i=1; i<=n; i++){int x = i, y;vis[x] = 1;for(int j=0; j<G[x].size(); j++) linker[G[x][j]] = x;for(int j=0; j<G[x].size(); j++){LL sum = 0;y = G[x][j];if(vis[y]) continue;if(out[y]<=B){for(int k=0; k<G[y].size(); k++){int z = G[y][k];if(linker[z]==x) sum++;}}else{for(int k=0; k<G[x].size(); k++){int z = G[x][k];if(s.find((LL)z*n+y) != s.end()) sum++;}}ans = ans + sum*(sum-1)/2;}}printf("%lld\n", ans);}return 0;
}
转载于:https://www.cnblogs.com/spfa/p/7495923.html
HDU 6184 Counting Stars 经典三元环计数相关推荐
- HDU - 6184 Counting Stars(思维+三元环)
题目链接:点击查看 题目大意:给出一个 nnn 个点 mmm 条边组成的无向图,问图中有多少个"三元环对","三元环对"指的是两个三元环共用了一条边 题目分析: ...
- 【HDU - 6184】Counting Stars(三元环计数,二分,优化暴力,O(m*sqrt(m)),图论)
题干: Little A is an astronomy lover, and he has found that the sky was so beautiful! So he is countin ...
- HDU 6184 2017广西邀请赛:Counting Stars(三元环)
题意: n个点m条边的无向图,问有多少个A-structure 其中A-structure满足V=(A,B,C,D) && E=(AB,BC,CD,DA,AC) 可以看出A-struc ...
- 牛客挑战赛51 E NIT的gcd(欧拉反演,建图优化,三元环计数)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Problem 给你一个正整数 nnn. 请你输出 ∑i=1n∑j=1n∑k=1ngcd(i,j)g ...
- P4619 [SDOI2018]旧试题(莫比乌斯反演,建图优化三重枚举,三元环计数,神仙好题,超级清晰易懂)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 P4619 [SDOI2018]旧试题(莫比乌斯反演,三元环计数) Problem 计算: ∑i=1A ...
- 三元环计数四元环计数
三元环计数 问题 给出一张n个点m条边的无向图,问图中有多少个三元组{ u , v , w } ,满足图中存在 { (u,v) , (v,w) , (w,u) } 三条边. 求解 Step1 定向 将 ...
- HDU6184【Counting Stars】(三元环计数)
题面 传送门 给出一张无向图,求 \(4\) 个点构成两个有公共边的三元环的方案数. 题解 orz余奶奶,orz zzk 首先,如果我们知道经过每条边的三元环个数\(cnt_i\),那么答案就是\(\ ...
- 洛谷 - P1989 无向图三元环计数(思维建图)
题目链接:点击查看 题目大意:给出一个 nnn 个点 mmm 条边组成的无向图,求三元环的个数 题目分析:对于原图建新图,对于原来的每条边来说 如果度数不同,度数小的点指向度数大的点 如果度数相同,编 ...
- P1989 无向图三元环计数 思维 + 建图
传送门 文章目录 题意: 思路: 题意: 统计无向图中三元环的个数. 思路: 很明显有一种暴力的方法,就是枚举每条边,让后再跑两个点的所有边,可以卡到复杂度O(m2)O(m^2)O(m2). 我们可以 ...
- 基站建设(三元环计数+根号分治 / bitset)
基站建设 problem solution code problem 给定 nnn 个地点,以及每个地点的可靠度 RiR_iRi. 有 mmm 条光纤架,每一条连接两个不同的地点,且是双向的. 测试 ...
最新文章
- 记录服务器连接jupyter notebook过程
- oracle11关闭账户验证,Windows下Oracle11g中使用外部操作系统账户验证
- java继承上机作业
- datax 高级_GitHub - HeyTool/DataX
- 深入Java集合学习系列:HashSet的实现原理
- 瞬时极性法对正负反馈的判断方法_何为反馈?如何判断?统统告诉你
- 第一章 密码学和加密交易的介绍
- matlab2016 b 安装详细教程正版中文密钥
- (C++)输入两个正整数m和n,求其最大公约数和最小公倍数(辗转相除法)
- Excel快捷键:Ctrl+E的功能汇总
- 《计算机工程》从投稿到录用之一手经验
- Spring boot Mybatis-Plus数据库单测实战(三种方式)
- ASEMI代理ADG736BRMZ-REEL7原装ADI车规级ADG736BRMZ-REEL7
- 3D设计软件中怎么画锥齿轮?浩辰3D设计实例
- eclipse安装教程和jdk配置(win超详细)
- 一文搞清楚码元速率(波特率)和比特速率(比特率)的区别
- getMethod方法getMethod(String name, Class<?>... parameterTypes)传入可变参数类型
- 移动安全-adb使用和提取apk文件
- 菜刀连接图片一句话木马
- 遇上爱发牢骚的同事怎么办?