题目链接:点击查看

题目大意:给出一个 nnn 个点 mmm 条边组成的无向图,问图中有多少个“三元环对”,“三元环对”指的是两个三元环共用了一条边

题目分析:可以先计算出每条边被多少个三元环占用,然后组合数学统计一下答案就好了

三元环的统计前往:洛谷 - P1989 无向图三元环计数

代码:

// #pragma GCC optimize(2)
// #pragma GCC optimize("Ofast","inline","-ffast-math")
// #pragma GCC target("avx,sse2,sse3,sse4,mmx")
#include<iostream>
#include<cstdio>
#include<string>
#include<ctime>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<stack>
#include<climits>
#include<queue>
#include<map>
#include<set>
#include<sstream>
#include<cassert>
#include<bitset>
using namespace std;
typedef long long LL;
typedef unsigned long long ull;
template<typename T>
inline void read(T &x)
{T f=1;x=0;char ch=getchar();while(0==isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}while(0!=isdigit(ch)) x=(x<<1)+(x<<3)+ch-'0',ch=getchar();x*=f;
}
template<typename T>
inline void write(T x)
{if(x<0){x=~(x-1);putchar('-');}if(x>9)write(x/10);putchar(x%10+'0');
}
const int inf=0x3f3f3f3f;
const int N=2e5+100;
vector<pair<int,int>>node[N];
int du[N],x[N],y[N],val[N];
pair<int,int>vis[N];
void init(int n,int m) {for(int i=1;i<=n;i++) {node[i].clear();du[i]=0;vis[i]={0,0};}for(int i=1;i<=m;i++) {val[i]=0;}
}
int main()
{#ifndef ONLINE_JUDGE
//  freopen("data.in.txt","r",stdin);
//  freopen("data.out.txt","w",stdout);
#endif
//  ios::sync_with_stdio(false);int n,m;while(scanf("%d%d",&n,&m)!=EOF) {init(n,m);for(int i=1;i<=m;i++) {scanf("%d%d",x+i,y+i);du[x[i]]++,du[y[i]]++;}for(int i=1;i<=m;i++) {int u=x[i],v=y[i];if(du[u]>du[v]) {swap(u,v);} else if(du[v]==du[u]&&u>v) {swap(u,v);}node[u].push_back({v,i});}for(int u=1;u<=n;u++) {for(auto it:node[u]) {int v=it.first;vis[v]={u,it.second};}for(auto it:node[u]) {int v=it.first;for(auto itt:node[v]) {int w=itt.first;if(vis[w].first==u) {val[vis[w].second]++;//u->wval[it.second]++;//u->vval[itt.second]++;//v->w}}}}LL ans=0;for(int i=1;i<=m;i++) {ans+=1LL*val[i]*(val[i]-1)/2;}write(ans),putchar('\n');}return 0;
}

HDU - 6184 Counting Stars(思维+三元环)相关推荐

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

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

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

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

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

  4. D - Counting Stars HDU - 7059

    D - Counting Stars HDU - 7059 题解: 长度为n的序列a,有三个操作: 对某个区间进行询问 对于某个区间内的每个数ai,减去ai&(-ai) 对于某个区间内的每个数 ...

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

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

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

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

  7. 2021HDU多校8 - 7059 Counting Stars(线段树)

    题目链接:点击查看 题目大意:给出 nnn 个数字,需要执行 mmm 次操作,每次操作分为下列三种类型: 1 l r :输出区间 [l,r][l,r][l,r] 的 sumsumsum 和 2 l r ...

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

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

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

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

最新文章

  1. 程序员成长的本质,就是一步步靠近商业
  2. 简单的java rpc_Java 简单的rpc 一
  3. android mock测试资源,Android 单元测试 --Mock 及 Mockito
  4. 日志分割工具cronolog
  5. Android开发之解决ListView和ScrollView滑动冲突的方法
  6. sklearn学习之KNN
  7. HoloLens1开发(三):Trilib插件动态加载模型-Part1
  8. 使用ActiveMQ 传输文件 以及使用Jetty搭建内嵌文件服务器
  9. 一年Android工作经验,一举拿下百度、网易、美团、小米、快手等Offer面经
  10. custompage.width 不能小数吗_为什么有军人戴眼镜?他们的裸眼视力合格吗?
  11. pyqt 鼠标离开按钮_小米 Smart Pad 体验:表面它是个鼠标垫,其实还是个鼠标垫...
  12. 关闭windows开机浏览器自动跳转MSN
  13. leetcode解题方案--013--Roman to Integer
  14. Linux ubuntu下载及安装教程
  15. Android系统连按5次电源键,手机连按5次电源键,能开启“紧急护主”功能,好多人没注意...
  16. Lipschitz 条件或者Lipschitz连续
  17. RT-LAB使用手册
  18. Hbuilder插入图片网页中无法显示
  19. “3.15”曝光的人脸识别摄像头,错在用错了场所
  20. 梯度下降法实现线性回归, 实例---预测波士顿房价

热门文章

  1. python数据分析并生成报告_pandas_profiling :教你一行代码生成数据分析报告
  2. ReentrantLock 的实现原理
  3. DefaultListableBeanFactory 对配置lazy-init 属性单态Bean 的预实例化
  4. RocketMQ的Consumer详解之push和pull模式(长轮询)
  5. Request_获取请求体数据
  6. Stream流中的常用方法_forEach
  7. 数组的定义格式一_动态初始化
  8. 多值参数-元组和字典的拆包
  9. php html 文本域,html文本域标签属性有哪些?html文本域标签属性用法介绍
  10. 201119阶段二sqlite3