题目链接: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 经典三元环计数相关推荐

  1. HDU - 6184 Counting Stars(思维+三元环)

    题目链接:点击查看 题目大意:给出一个 nnn 个点 mmm 条边组成的无向图,问图中有多少个"三元环对","三元环对"指的是两个三元环共用了一条边 题目分析: ...

  2. 【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 ...

  3. HDU 6184 2017广西邀请赛:Counting Stars(三元环)

    题意: n个点m条边的无向图,问有多少个A-structure 其中A-structure满足V=(A,B,C,D) && E=(AB,BC,CD,DA,AC) 可以看出A-struc ...

  4. 牛客挑战赛51 E NIT的gcd(欧拉反演,建图优化,三元环计数)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Problem 给你一个正整数 nnn. 请你输出 ∑i=1n∑j=1n∑k=1ngcd⁡(i,j)g ...

  5. P4619 [SDOI2018]旧试题(莫比乌斯反演,建图优化三重枚举,三元环计数,神仙好题,超级清晰易懂)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 P4619 [SDOI2018]旧试题(莫比乌斯反演,三元环计数) Problem 计算: ∑i=1A ...

  6. 三元环计数四元环计数

    三元环计数 问题 给出一张n个点m条边的无向图,问图中有多少个三元组{ u , v , w } ,满足图中存在 { (u,v) , (v,w) , (w,u) } 三条边. 求解 Step1 定向 将 ...

  7. HDU6184【Counting Stars】(三元环计数)

    题面 传送门 给出一张无向图,求 \(4\) 个点构成两个有公共边的三元环的方案数. 题解 orz余奶奶,orz zzk 首先,如果我们知道经过每条边的三元环个数\(cnt_i\),那么答案就是\(\ ...

  8. 洛谷 - P1989 无向图三元环计数(思维建图)

    题目链接:点击查看 题目大意:给出一个 nnn 个点 mmm 条边组成的无向图,求三元环的个数 题目分析:对于原图建新图,对于原来的每条边来说 如果度数不同,度数小的点指向度数大的点 如果度数相同,编 ...

  9. P1989 无向图三元环计数 思维 + 建图

    传送门 文章目录 题意: 思路: 题意: 统计无向图中三元环的个数. 思路: 很明显有一种暴力的方法,就是枚举每条边,让后再跑两个点的所有边,可以卡到复杂度O(m2)O(m^2)O(m2). 我们可以 ...

  10. 基站建设(三元环计数+根号分治 / bitset)

    基站建设 problem solution code problem 给定 nnn 个地点,以及每个地点的可靠度 RiR_iRi​. 有 mmm 条光纤架,每一条连接两个不同的地点,且是双向的. 测试 ...

最新文章

  1. 记录服务器连接jupyter notebook过程
  2. oracle11关闭账户验证,Windows下Oracle11g中使用外部操作系统账户验证
  3. java继承上机作业
  4. datax 高级_GitHub - HeyTool/DataX
  5. 深入Java集合学习系列:HashSet的实现原理
  6. 瞬时极性法对正负反馈的判断方法_何为反馈?如何判断?统统告诉你
  7. 第一章 密码学和加密交易的介绍
  8. matlab2016 b 安装详细教程正版中文密钥
  9. (C++)输入两个正整数m和n,求其最大公约数和最小公倍数(辗转相除法)
  10. Excel快捷键:Ctrl+E的功能汇总
  11. 《计算机工程》从投稿到录用之一手经验
  12. Spring boot Mybatis-Plus数据库单测实战(三种方式)
  13. ASEMI代理ADG736BRMZ-REEL7原装ADI车规级ADG736BRMZ-REEL7
  14. 3D设计软件中怎么画锥齿轮?浩辰3D设计实例
  15. eclipse安装教程和jdk配置(win超详细)
  16. 一文搞清楚码元速率(波特率)和比特速率(比特率)的区别
  17. getMethod方法getMethod(String name, Class<?>... parameterTypes)传入可变参数类型
  18. 移动安全-adb使用和提取apk文件
  19. 菜刀连接图片一句话木马
  20. 遇上爱发牢骚的同事怎么办?

热门文章

  1. 关于Unity 3D GUI不显示中文问题
  2. 3万一5万新能源电动汽车,3万内的新能源电动轿车
  3. 电风扇计算机控制系统,语音识别电风扇控制系统设计.doc
  4. OSS对象存储是什么?
  5. 自定义设置HTTP响应头
  6. python adf检验_ADF检验结果怎么看?
  7. 电脑里删除的文件怎么恢复,数据恢复方法大全
  8. 观察者模式和模拟wow插件的例子
  9. 远程桌面连接 提示用户名密码错误的解决办法
  10. 彩虹php域名授权系统,彩虹云域名授权系统(正版源码+教程)