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;
}
HDU 6184 Counting Stars 经典三元环计数的更多相关文章
- hdu6184 Counting Stars 【三元环计数】
题目链接 hdu6184 题解 题意是让我们找出所有的这样的图形: 我们只需要求出每条边分别在多少个三元环中,记为\(x\),再然后以该点为中心的图形数就是\({x \choose 2}\) 所以我们 ...
- [hdu 6184 Counting Stars(三元环计数)
hdu 6184 Counting Stars(三元环计数) 题意: 给一张n个点m条边的无向图,问有多少个\(A-structure\) 其中\(A-structure\)满足\(V=(A,B,C, ...
- HDU 6184 Counting Stars
Problem Description Little A is an astronomy lover, and he has found that the sky was so beautiful!S ...
- 【刷题】HDU 6184 Counting Stars
Problem Description Little A is an astronomy lover, and he has found that the sky was so beautiful! ...
- Codechef SUMCUBE Sum of Cubes 组合、三元环计数
传送门 好久没有做过图论题了-- 考虑\(k\)次方的组合意义,实际上,要求的所有方案中导出子图边数的\(k\)次方,等价于有顺序地选出其中\(k\)条边,计算它们在哪一些图中出现过,将所有方案计算出 ...
- 【BZOJ5332】[SDOI2018]旧试题(数论,三元环计数)
[BZOJ5332][SDOI2018]旧试题(数论,三元环计数) 题面 BZOJ 洛谷 题解 如果只有一个\(\sum\),那么我们可以枚举每个答案的出现次数. 首先约数个数这个东西很不爽,就搞一搞 ...
- loj#6076「2017 山东一轮集训 Day6」三元组 莫比乌斯反演 + 三元环计数
题目大意: 给定\(a, b, c\),求\(\sum \limits_{i = 1}^a \sum \limits_{j = 1}^b \sum \limits_{k = 1}^c [(i, j) ...
- BZOJ.5407.girls/CF985G. Team Players(三元环计数+容斥)
题面 传送门(bzoj) 传送门(CF) \(llx\)身边妹子成群,这天他需要从\(n\)个妹子中挑出\(3\)个出去浪,但是妹子之间会有冲突,表现为\(i,j\)之间连有一条边\((i,j)\), ...
- LOJ2565 SDOI2018 旧试题 莫比乌斯反演、三元环计数
传送门 这道题的思路似乎可以给很多同时枚举三个量的反演题目提供一个很好的启发-- 首先有结论:\(d(ijk) = \sum\limits_{x|i}\sum\limits_{y|j}\sum\lim ...
随机推荐
- 花了一年时间开发的弯管机YBC编程软件
弯管技术广泛应用于锅炉及压力容器,空调制造,汽车,航空航天等多种行业.管型的形状复杂多变弯管工艺人员通常依据图纸输入关键点的坐标(XYZ坐标),然后生成可以由弯管机设备直接直接完成的加工指令YBC数据 ...
- Swift学习之元组(Tuple)
定义 元组是由若干个类型的数据组成,组成元组的数据叫做元素,每个元素的类型都可以是任意的. 用法一 let tuples1 = ("Hello", "World" ...
- 亚马逊AWS EC2云实例AMI安装LNMP环境(3)——Mysql5.5
概括:这里选择亚马逊EC2的Linux AMI实例,该Linux服务器是亚马逊预配置的Linux环境,内置多个YUM源,属于亚马逊首推的稳定Linux服务器.默认登录用户名为ec2-user,执行ro ...
- Python网络数据采集4-POST提交与Cookie的处理
Python网络数据采集4-POST提交与Cookie的处理 POST提交 之前访问页面都是用的get提交方式,有些网页需要登录才能访问,此时需要提交参数.虽然在一些网页,get方式也能提交参.比如h ...
- UE4 C++ 跳转网页
FString TheURL = "https://home.cnblogs.com/u/huojiaoqingchun0123/"; FPlatformProcess::Laun ...
- Shell排序
public void shellSort(int[] array) { int increment = array.length; do { increment = increment / 2; / ...
- Javascript数组(1)--基本属性及方法
数组Array是Javascript语言中非常重要的两种引用类型数据之一,另外一种为对象Object.Array的数据模型可分为两种进行存储:堆栈结构.队列结构. 昨天,确切说是前天了,去和大学同学见 ...
- oAuth 认证
这段时间公司开发项目用到oAuth2协议,现在做一下梳理. CORS即Cross Origin Resouce Share,跨域资源共享:是W3C为防止脚本攻击,而制定的安全标准之一,它云溪浏览器向跨 ...
- javascript事件循环机制 浅尝手记
引入 众所周知Javascript是一个单线程的机制,虽然可以依托多线程的浏览器实现页面如何实现页面复杂的渲染.事件响应,但仍不会改变其单线程的本质:所以对于js的事件循环机制的了解是一个前端人员的必 ...
- POJ--1088--dp--滑雪
#include<iostream> using namespace std; ; }; }; int dp(int,int); int row,col; int main() { whi ...