擒贼先擒王(并查集)

擒贼先擒王(并查集)

题面

快过年了,犯罪分子也开始为年终奖奋斗了。晓哼的家乡出现了多次抢劫事件。由于强盗人数过于庞大,作案频繁,警方想查清楚到底有几个犯罪团伙实在太不容易了,不过警察叔叔还是搜集到了一些线索,需要咱们帮忙分析一下:
现在有10个强盗。
1号强盗与2号强盗是同伙。
3号强盗与4号强盗是同伙。
5号强盗与2号强盗是同伙。
4号强盗与6号强盗是同伙。
2号强盗与6号强盗是同伙。
8号强盗与7号强盗是同伙。
9号强盗与7号强盗是同伙。
1号强盗与6号强盗是同伙。
2号强盗与4号强盗是同伙。
有一点需要注意,强盗同伙的同伙也是同伙。你能帮助警方查出有多少个独立的犯罪团伙吗?

输入
第一行n m,n(n< 3000 )表示强盗的人数,m表示警方搜集到的m(m< 5000 )条线索。

接下来的m行每一行有两个数 a b。表示强盗a和强盗b是同伙。

输出
有多少个独立的犯罪团伙

样例
样例输入1

10 9
1 2
3 4
5 2
4 6
2 6
8 7
9 7
1 6
2 4

样例输出1

3

题目概括

我们要找出所有数据,依照题目关系条件,可以组成的树的棵数

思路

并查集不清楚的朋友看这儿
先按照输入建树,再统计有多少个结点的上级是它本身(根节点)
最后把它A掉

AC代码和注释

#include<bits/stdc++.h>
using namespace std;
int n,m;
int parent[5005];
void init(int n) {//初始化 
    for(int i = 1;i <= n;i ++) {
        parent[i] = i;
    }
}
int find(int t){//查找 
	if(parent[t] == t) return t;
	else return parent[t] = find(parent[t]);
}
void merge(int r1,int r2){//合并 
	parent[find(r2)] = find(r1);
}
int main(){
	cin >> n >> m;
	init(n);
	for(int i = 1;i <= m;i ++){
		int x,y;
		cin >> x >> y;
		merge(x,y);
	}
	int ans = 0;
	for(int i = 1;i <= n;i ++){//记录有多少个结点的上级是它本身(根节点)
		if(parent[i] == i) ans ++;
	}
	cout << ans;
	return 0;
}

小编蒟蒻一个,有什么问题请大佬不惜赐教Orz

posted @   骆美辰  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
  1. 1 淋雨一直走 张韶涵
  2. 2 一期一会《未闻花名》(Cover 茅野愛衣,戸松遥,早見沙織) 周深
  3. 3 起风了 吴青峰
  4. 4 极恶都市 夏日入侵企划
一期一会《未闻花名》(Cover 茅野愛衣,戸松遥,早見沙織) - 周深
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 沃特艾文儿

作曲 : 町田纪彦

曲:secret base~君がくれたもの~」(10 years after Ver.)

视频:麽麽

唱/和声/渣后期:卡布叻_周深

我们将奔向各自的 那片碧海蓝天

而这是远行前 最后告别:

“谢谢你曾陪我走过那岁月,

我知有太多人太多事......

是一生一期,

是一期一会。”

回忆披着下午三点半的阳光

像影子般被拉得模糊而漫长

它就在身后供你我倦怠时 千百次回头望

我熟知的少年们都终将成长

痛哭过大笑过挥挥手去远方

他们会如我祝愿的那样 成为自己的太阳

这一路风雨不休 得你们一路护佑

走过多少路口

回眸时每次泪流 都因岁月温柔

那些你与我 一直追逐的

一再错失的 不曾得到的

希望那些 都不会被流光消磨

有人说这生命如长河

我们度的风波 是人世间最寻常的颠簸

它不足以让我们修成正果

却足以让我们难忘难舍

这些年我们曾搂着肩高歌

曾碰过壁也碰过杯 谈过你的天高 我的海阔

曾意气风发也曾误解苛责 到如今都一并一笑而过

你往那天高

我向那海阔

这一路风雨不休 得你们一路护佑

走过多少路口

回眸时每次泪流 都因岁月温柔

那些你与我 一直追逐的

一再错失的 不曾得到的

希望那些 都不会被流光消磨

这些年我们曾搂着肩高歌

曾碰过壁也碰过杯 谈过你的天高 我的海阔

曾意气风发也曾误解苛责 到如今都一并一笑而过

你往那天高

我向那海阔

放眼路漫漫

那远行的船

有回忆做港湾

正值年少轻狂 爱的都是虚妄

追的都是天光 梦的都是荒唐

却在心上 刻下最无忧的时光

也许未来会有那一天

当你闭上双眼 恍然又回到了 那段华年

那时梦仍遥远你我仍少年

以为踮踮脚就能触到天

多年后当你正漫步过长街

在人海中擦肩 熟悉的一张脸 会释然吗

当初挥汗挥泪时多少不甘

都早在岁月中一一圆满

也许未来会有那一天

当你闭上双眼 恍然又回到了 那段华年

那时还不知倦还不懂怀念

以为路的尽头就是永远

多年后当你正重翻老照片

那一幕幕画面 在脑海中重现

会微笑吗

当初玩笑出口的多少诺言

都早在岁月中一一兑现

这风雪长路

朋友别停步

我在这半途

给你们祝福

lock: { enable: true, background: 'https://img1.baidu.com/it/u=2788089125,168843488&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1690563600&t=35fa4326e773b3fbf83562ad746b7cd2',//锁屏背景 strings: [ 'Every win named never give up 每一份胜利都叫不放弃',//签名 ], },
点击右上角即可分享
微信分享提示