思路:加边个数等于连通块个数减一,因为是无向图可以用直接用并查集统计连通块个数。

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <set>
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define space putchar(' ')
#define enter putchar('\n')
typedef pair<int,int> PII;
const int mod=1e4+7;
const int N=2e6+10;
const int inf=0x7f7f7f7f;ll gcd(ll a,ll b)
{return b==0?a:gcd(b,a%b);
}ll lcm(ll a,ll b)
{return a*(b/gcd(a,b));
}template <class T>
void read(T &x)
{char c;bool op = 0;while(c = getchar(), c < '0' || c > '9')if(c == '-')op = 1;x = c - '0';while(c = getchar(), c >= '0' && c <= '9')x = x * 10 + c - '0';if(op)x = -x;
}
template <class T>
void write(T x)
{if(x < 0)x = -x, putchar('-');if(x >= 10)write(x / 10);putchar('0' + x % 10);
}int fa[N];
int n,k;
int a[N],sum[N];
int fnd(int x)
{return fa[x]==x?x:fa[x]=fnd(fa[x]);
}
void merg(int x,int y)
{fa[fnd(x)]=fnd(y);
}
int main()
{read(n),read(k);for(int i=0;i<=n;i++)fa[i]=i;for(int i=0;i<k;i++){int x,y;read(x),read(y);merg(x,y);}int ans=0;for(int i=1;i<=n;i++)if(fnd(i)==i)ans++;write(ans-1);return 0;
}

加边的无向图(并查集)相关推荐

  1. 网络分析(带权并查集)

    网络分析 题意: 有n个节点,一开始彼此独立,有两个操作,第一个操作时是连接两个节点,第二个操作是对一个节点+x,(在进行第二个操作时,与该点相连的点也会+x) 问每个节点的权值 题解: 带权并查集 ...

  2. 算法-并查集-加边无向图

    题目描述:给你一个 n 个点,m 条边的无向图,求至少要在这个的基础上加多少条无向边使得任意两个点可达~ 输入描述:第一行两个正整数 n 和 m . 接下来的m行中,每行两个正整数 i . j ,表示 ...

  3. 并查集——加边的无向图

    并查集--加边的无向图 题目描述 给你一个 n 个点,m 条边的无向图,求至少要在这个的基础上加多少条无向边使得任意两个点可达~ 输入描述: 第一行两个正整数 n 和 m . 接下来的m行中,每行两个 ...

  4. 简单并查集-加边的无向图

    并查集小白入门 并查集最常用的两个函数就是find() 和 merge(): 代码如下所示: 这里最后统计边数时,可以用set来记录(依次遍历,将每个点的父节点加入集合,因为set默认去重,所以相等的 ...

  5. I - Ant Trip (无向图欧拉回路+并查集),判断

    I - Ant Trip 参考博客:Ant Trip(欧拉回路+并查集) 参考:欧拉路径问题与欧拉回路问题 题意:给你无向图的 N 个点和 M 条边,保证这 M 条边都不同且不会存在同一点的自环边,现 ...

  6. 并查集与贪心算法的应用之求解无向图的最小生成树

    一,介绍 本文介绍使用Kruskal算法求解无向图的最小生成树.Kruskal是一个贪心算法,并且使用了并查集这种数据结构. 关于并查集的介绍,参考:数据结构--并查集的原理及实现 二,构造一个无向图 ...

  7. [3.3训练赛]One-Dimensional(矩阵快速幂),Freda的迷宫(无向图强连通分量+并查集),一道防AK好题

    文章目录 T1:One-Dimensional title solution code T2:[NOIP模拟赛]Freda的迷宫 title solution code T3:[NOIP模拟赛]一道防 ...

  8. LeetCode 323. 无向图中连通分量的数目(并查集)

    文章目录 1. 题目 2. 解题 1. 题目 给定编号从 0 到 n-1 的 n 个节点和一个无向边列表(每条边都是一对节点),请编写一个函数来计算无向图中连通分量的数目. 示例 1: 输入: n = ...

  9. hdu1558计算几何加并查集

    不知道杭电题目分类是咋分的,这题我是在"匹配"里找到的,太假了.这明显是计算几何加并查集嘛.当然,并查集部分很简单,主要就是计算几何了,打了两个小时,我了个去,计算几何功底还是不行 ...

最新文章

  1. 硬盘发生不同的故障要采用不同的方案恢复数据
  2. MAC安装iterm2及配置
  3. SAP BW查看数据源提取方法
  4. PMCAFF产品众测 | 对话随手攒CEO聊聊产品的设计、推广和改进
  5. 3 SAP STMS跨服务器传请求号
  6. mybatis plus 插入生成id_早点下班陪女朋友系列之Mybatis-plus代码生成器
  7. 漫谈SCA(软件成分分析)测试技术:原理、工具与准确性
  8. 黑龙江高职计算机对口升学,2020年黑龙江中职对口招生录取院校投档分数线
  9. 来了!华为首款5G双模手机Mate 20 X (5G)发布:这个价格香吗?
  10. MyBatis 批量插入(ExecutorType.BATCH)
  11. 1936 问题 B: 打印极值点下标(C语言)
  12. 13个免费创建和托管网站的在线工具[图]
  13. remote collaboration on physical tasks 应用
  14. vep文件转换mp4翻录教程
  15. 余世伟视频笔记----如何塑造管理者的性格魅力领袖根性之诚信和担当
  16. ZBrush中保存历史记录太多该如何解决
  17. asp:DropDownList动态绑定数据,设置默认值
  18. ABBYY FineReader OCR图文识别软件如何快速将纸质文档转为电子档教程
  19. 17级智能信息处理与控制团支部大会
  20. 常微分方程数值解法1

热门文章

  1. c语言求圆锥的表面积和体积_用C语言求圆锥体积
  2. 人力资源机器_人力资源部门的机器学习和AI
  3. ViewFlipper用法
  4. The multi-part request contained parameter data (excluding uploaded files)
  5. 编译器之语法分析器(syntax analyzer)
  6. SpringBoot2.0.X使用Redis连接池Lettuce踩坑
  7. java中的finalize
  8. 点击按钮复制文本框内容
  9. escape的主要用途
  10. python制作海报_用python制作“除夕夜倒计时”海报,新的一年你准备好了么?