1.关于837.连通块中点的数量

1.题目

2.实现

 

3.结合例子题目分析

有n等于5个点,点[1]与[2]连线(连边=把两个集合合并),因为两者在一条边(连通块:A与B互通),所以输出 Yes。{Q2 1}中由于[1]与[2]相连,即点[1]所在的连通块有{点[1],[2]}2个点的数量。接着,点[2]又与[5]相连,点[5]所在连通块有{点[5],[2],[1]}3个点的数量。

4.伪代码分析

POINT-SAME1(n,m)
N<-100010
创建数组p[1..N],cnt[1..N]
创建函数find(x)
{if p[x]!=x
p[x]<-find(p[x])
return p[x]}
输入n,m的值
for i<-1 to n
p[i]<-i,cnt[i]<-1
while m--
输入操作op
if op<-'C'
{输入a,b的值
a<-find(a),b<-find(b)
if a!=b
then p[a]<-b;
cnt[b]<-cnt[b]+cnt[a];}
else if op<-'Q1'
{输入a,b的值
if find(a)==find(b)
then 输出'Yes'
else 输出'No'}
else 输入a
     输出cnt[find(a)]
return 0




这个伪代码是自己写的,不规范,但便于自己记代码。

第一次写博客。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值