$n$ 点 $m$ 边的图求多少对三元环公用一条边
变无向图为有向图

建图方法:
对于每条无向边 度数小的端点向度数大的端点连边
度数相同则编号小的点向编号大的点连边
这样就构成 $DAG$
遍历:
遍历每条边的 $u$
标记另一端点 $v$
遍历该边的 $v$
如果 $v$ 的 $v_2$ 的标记与 $v$ 相同
则说明构成了三元环 $(u, v), (v, v_2), (u, v_2)$

记录每条边构成的三元环的个数 $x$
组合数 $x \choose 2$ 加入答案

由于连边时每个点的出边都要 $<= \sqrt(m)$

所以时间复杂度 $O(m \sqrt(m))$

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <string>
#include <vector>
#include <map>
#include <cstdlib> using namespace std; #define gc getchar()
inline int read() {
int x = ; char c = gc;
while(c < '' || c > '') c = gc;
while(c >= '' && c <= '') x = x * + c - '', c = gc;
return x;
}
#undef gc const int N = 1e6 + , M = 2e5 + ; int du[N], a[M], b[M];
int n, m, head[N], cnt, Ans[N];
struct Node {int v, nxt, id;} G[M];
struct Node2 {int first, second;} vis[N]; inline void Add(int u, int v, int id) {
G[++ cnt].v = v; G[cnt].nxt = head[u]; G[cnt].id = id; head[u] = cnt;
} void Clear() {
cnt = ;
memset(vis, , sizeof vis);
memset(du, , sizeof du);
memset(Ans, , sizeof Ans);
for(int i = ; i <= n; i ++) head[i] = -;
} int main() {
while(scanf("%d %d", &n, &m) == ) {
Clear();
for(int i = ; i <= m; i ++) {
a[i] = read(), b[i] = read();
du[a[i]] ++, du[b[i]] ++;
}
for(int i = ; i <= m; i ++) {
if(du[a[i]] > du[b[i]] || (du[a[i]] == du[b[i]] && a[i] > b[i])) swap(a[i], b[i]);
Add(a[i], b[i], i);
}
int use_num = ;
for(int i = ; i <= m; i ++) {
use_num ++;
for(int j = head[a[i]]; ~ j; j = G[j].nxt) {
vis[G[j].v] = (Node2) {use_num, G[j].id};
}
for(int j = head[b[i]]; ~ j; j = G[j].nxt) {
if(vis[G[j].v].first == use_num) {
Ans[i] ++, Ans[G[j].id] ++, Ans[vis[G[j].v].second] ++;
}
}
}
long long answer = ;
for(int i = ; i <= m; i ++) if(Ans[i] > ) answer += (Ans[i] * (Ans[i] - ) / );
printf("%lld\n", answer);
}
return ;
}

hud 6184的更多相关文章

  1. 如何用Unity GUI制作HUD

    若知其所以然,自然知其然. HUD是指平视显示器,就是套在脸上,和你的眼睛固定在一起,HUD的意思就是界面咯,一般我们说HUD特指把3D空间中的界面的某些信息(比如血条,伤害之类)的贴在界面上,对应3 ...

  2. xamarin UWP平台下 HUD 自定义弹窗

    在我的上一篇博客中我写了一个在xamarin的UWP平台下的自定义弹窗控件.在上篇文章中介绍了一种弹窗的写法,但在实际应用中发现了该方法的不足: 1.当弹窗出现后,我们拖动整个窗口大小的时候,弹窗的窗 ...

  3. xamarin UWP设置HUD加载功能

    使用xamarin开发的时候经常用到加载HUD功能,就是我们常见的一个加载中的动作,Android 下使用 AndHUD , iOS 下使用 BTProgressHUD, 这两个在在 NuGet 上都 ...

  4. OSG中的HUD

    OSG中的HUD 所谓HUD节点,说白了就是无论三维场景中的内容怎么改变,它都能在屏幕上固定位置显示的节点. 实现要点: 关闭光照,不受场景光照影响,所有内容以同一亮度显示 关闭深度测试 调整渲染顺序 ...

  5. CREATE A ENERGY / HEALTH BAR HUD

    Now then, let's get started. 1. Open the Play scene which you had created in the previous post. If y ...

  6. iOS之UI--指示器HUD的创建和设置

    指示器的创建和设置 渐变动画 描述: 使用label就能制作指示器,原理:就是让label以动画的形式慢慢显示和消失 最好是半透明的 指示器有时候也被称为:HUD,遮盖,蒙版 思路步骤: 1.先在st ...

  7. NGUI:HUD Text(头顶伤害漂浮文字)

    HUD Text 很早之前就有闻于NGUI中的HUD Text插件,今天得以尝试,看了会儿官方的文档,楞是没给看明白,官方的ReadMe.txt写的使用方法如下: 官网Usage 1. Attach ...

  8. iOS开发必备HUD(透明指示层)

    iOS开发必备HUD(透明指示层) 字数421 阅读2123 评论1 喜欢51 1.MBProgressHUD GitHub地址:https://github.com/jdg/MBProgressHU ...

  9. UE4编程之C++创建一个FPS工程(二)角色网格、动画、HUD、子弹类

    转自:http://blog.csdn.net/u011707076/article/details/44243103 紧接上回,本篇文章将和大家一同整理总结UE4关于角色网格.动画.子弹类和HUD的 ...

随机推荐

  1. vim常用命令的使用

    中文博客:https://www.cnblogs.com/lijia0511/p/5644566.html 英文原文:http://yannesposito.com/Scratch/en/blog/L ...

  2. MySQL新项目如何确保上线安全

    大纲 DBA最应该做的事情 新项目开发环境应该注意什么 功能测试和压力测试MySQL DBA关注点 线上环境关注点 业务在大压力情况下,MySQL如何能活下来 DBA最应该做的事情 备份 建议每天全备 ...

  3. javscript函数的运用

    函数,一段能够自动完成某些功能的代码块,函数的出现,既解决了重复使用重一功能的需求,又可以避免代码的臃肿性. 使用函数有两个要求:必须调用后才可以执行;函数名不要和关键字以及系统函数相同; 函数主要有 ...

  4. 使用SAP Cloud Platform Leonardo机器学习提取图片的特征向量

    选中一个需要进行测试的Leonardo机器学习服务,点击Configure Environments: 因为我不想使用sandbox环境,所以我选择了eu10这个region: 维护clientid和 ...

  5. FDD-LTE上下行带宽一样的,为什么上下行流量差别这么大

    转:https://zhidao.baidu.com/question/923940070377297579.html 虽然FD系统,上下行使用的带宽一样,但是上下行的信号编码效率完全不同.上行信号( ...

  6. 浅谈Java中的AOP面向切面的变成和控制反转IOC

    https://blog.csdn.net/hi_kevin/article/details/7325554 https://www.cnblogs.com/zedosu/p/6632260.html ...

  7. C#中流Stream的使用-学习

    概念 提供字节序列的一般视图.这是一个抽象类. 子类: Derived Microsoft.JScript.COMCharStream System.Data.OracleClient.OracleB ...

  8. 【克鲁斯卡尔蒜法-最小生成树算法】-zzuli-2271 -Problem -E-魔法交流活动

    问题 E: 魔法交流活动 题目描述 魔法学校近日开展了主题为“天气晴朗”的魔法交流活动.N名魔法师按阵法站好,之后选取N - 1条魔法链将所有魔法师的魔力连接起来,形成一个魔法阵.魔法链是做法成功与否 ...

  9. 赤池信息准则AIC,BIC

    很多参数估计问题均采用似然函数作为目标函数,当训练数据足够多时,可以不断提高模型精度,但是以提高模型复杂度为代价的,同时带来一个机器学习中非常普遍的问题——过拟合.所以,模型选择问题在模型复杂度与模型 ...

  10. 【Java】用五种语言写数组(用于自己学习)

    C语言 #include<stdio.h> int main() { ] = {, , , , , , , , , }; int i; ;i<;i++) printf("% ...