Big−SmallBig-SmallBig−Small 算法一般对度数进行分治,其时间复杂度可以规约为sqrt(m)sqrt(m)sqrt(m)级别
经典例题:P1989三元环计数问题

//#define LOCAL
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define mem(a, b) memset(a,b,sizeof(a))
#define sz(a) (int)a.size()
#define INF 0x3f3f3f3f
#define DNF 0x7f
#define DBG printf("this is a input\n")
#define fi first
#define se second
#define mk(a, b) make_pair(a,b)
#define pb push_back
#define LF putchar('\n')
#define SP putchar(' ')
#define p_queue priority_queue
#define CLOSE ios::sync_with_stdio(0); cin.tie(0)template<typename T>
void read(T &x) {x = 0;char ch = getchar();ll f = 1;while(!isdigit(ch)){if(ch == '-')f *= -1;ch = getchar();}while(isdigit(ch)){x = x * 10 + ch - 48; ch = getchar();}x *= f;}
template<typename T, typename... Args>
void read(T &first, Args& ... args) {read(first);read(args...);}
template<typename T>
void write(T arg) {T x = arg;if(x < 0) {putchar('-'); x =- x;}if(x > 9) {write(x / 10);}putchar(x % 10 + '0');}
template<typename T, typename ... Ts>
void write(T arg, Ts ... args) {write(arg);if(sizeof...(args) != 0) {putchar(' ');write(args ...);}}
using namespace std;ll gcd(ll a, ll b) {return b == 0 ? a : gcd(b, a % b);
}ll lcm(ll a, ll b) {return a / gcd(a, b) * b;
}int n , m, k;
const int N = 2e5 + 5;
vector <int> edge[N];
int deg[N], A[N], B[N];
int vis[N];
ll ans = 0;
int main (void)
{read (n, m);for (int i = 1 ; i <= m ; i ++){read (A[i], B[i]);deg[A[i]] ++ , deg[B[i]] ++;}for (int i = 1 ; i <= m ; i ++){int u = A[i] , v = B[i];if (deg[u] > deg[v] || (deg[u] == deg[v] && u > v))swap (u, v);edge[u].pb(v);}for (int u = 1 ; u <= n ; u ++){for (auto v : edge[u]) vis[v] = u;for (auto v : edge[u])for (auto z : edge[v])if (vis[z] == u)ans ++;}cout << ans << endl;
}

Big-Small (根号分治) 学习笔记相关推荐

  1. [摸鱼]cdq分治 学习笔记

    待我玩会游戏整理下思绪(分明是想摸鱼 cdq分治是一种用于降维和处理对不同子区间有贡献的离线分治算法 对于常见的操作查询题目而言,时间总是有序的,而cdq分治则是耗费\(O(logq)\)的代价使动态 ...

  2. cdq分治 学习笔记

    什么是 c d q cdq cdq 分治 一种很优美的分治,具体来说,我们解决 [ l , r ] [l,r] [l,r] 这个,跟普通的分治大体思路一样,也是先分治 [ l , m i d ] [l ...

  3. CDQ分治——学习笔记

    前言 因为中国集训队的大佬们总会发明一些新的东西,所以中国的计算机竞赛水平才会一直处于国际前沿,而cdq分治也是某一年的集训队成员发明的算法. 什么是CDQ分治 cdq分治是一种分治(这不是废话嘛), ...

  4. 边分治学习笔记(bzoj2870)

    如果点分治的话,那个取最小点权操作很难合并,不过树可以点分治,那自然也可以边分治.我们每次找到一条边,使得删掉这条边后的两个连通块中最大的那个的大小尽可能小,然后处理经过这条边的路径信息-- 桥豆麻袋 ...

  5. [学习笔记]CDQ分治

    分治,考虑前一半对后一半的影响. (和一般分治不太相同的思想是,一般分治不分谁对谁的影响,跨mid的都要统计.(全局变量统计) 而CDQ貌似要落脚到前一半对后一半的影响上,也就是贡献在后一半统计,由前 ...

  6. 【学习笔记】无向图、有向图的三元环、四元环计数问题(根号分支+bitset)

    三元环计数和四元环计数问题 无向图三元环计数问题 根号分治 bitset 无向图四元环计数问题 有向图三四元环计数问题 无向图三元环计数问题 根号分治 记 di:id_i:idi​:i 在原图中的度数 ...

  7. 学习计划——根号分治

    根号分治 根号分治是一种思想,一般根据一个数(可以是数组的数,也可以是答案的数)分类,分为大于 s q r t ( n ) sqrt(n) sqrt(n)的部分和小于等于 s q r t ( n ) ...

  8. 【学习笔记】超简单的快速数论变换(NTT)(FFT的优化)(含全套证明)

    整理的算法模板合集: ACM模板 目录 一.前置知识 二.快速数论变换(NTT) 三.NTT证明(和FFT的关系) 四.NTT模板 数组形式的实现 vector形式的实现 点我看多项式全家桶(●^◡_ ...

  9. 不可错过的CMS学习笔记

    来源:dqVoice 引子 带着问题去学习一个东西,才会有目标感,我先把一直以来自己对CMS的一些疑惑罗列了下,希望这篇学习笔记能解决掉这些疑惑,希望也能对你有所帮助. CMS出现的初衷.背景和目的? ...

  10. 电力电子技术学习笔记

    电力电子技术学习笔记 更新于2018-11-30 整流电路 单相桥式不控整流 VT2和VT3将负半周期的正弦波变成正电压加在负载两端 直流电压Ud,一个周期脉动两次 环流/换相点:器件切换状态,对应正 ...

最新文章

  1. POI如何使用已有Excel作为模板二三事
  2. Silverlight C# 游戏开发:Silverlight开发环境
  3. 一文攻破枚举类型-C语言
  4. Typora中使用Gitee图床
  5. 通信与计算机技术的联系,通信技术与计算机技术融合发展论文
  6. 按键精灵post教程_掌控POST(1)
  7. 阿里程序员双11加班吃什么?
  8. Docker一站式配置Nginx【图文教程】
  9. 沸腾!阿里又开源了一项自研核心技术!
  10. 微软商店下载的软件怎么放到桌面?
  11. CDN的原理技术及使用方法
  12. 具体案例 快速原型模型_【复习资料】软件工程之快速原型模型
  13. bootstrap v4 toast轻提示正确用法
  14. Bootstrap抽样和Monte Carlo思想
  15. c语言怎么写tg的反函数,关于y=x对称的两个函数表达式有什么特点 改怎么写 比如对数函数...
  16. HTML5模拟齿轮动画
  17. CTP开发(1)CTP开发的概述
  18. p2p网络实现(C++)
  19. 中兴服务器告警,中兴ZXPCS 10.0网管系统简介
  20. JS 删除对象(Object)中的键值对

热门文章

  1. 成就系统实现(四)-测试和总结
  2. thinkphp 面包屑导航
  3. synergy安装和使用小结
  4. 已解决org.springframework.beans.factory.UnsatisfiedDependencyException异常的正确解决方法,亲测有效!!!
  5. ZK zul中显示纯的HTML代码
  6. 2021河南普通话考试的时间和内容
  7. 关于打破思维的墙读后感
  8. KITTI结果评测流程
  9. 布局:px to vw、vh
  10. Kinect2.0 UI交互 InteractionManager脚本