7-4 部落(25 分)

在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈。我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落?并且检查任意两个人是否属于同一个部落。

输入格式:

输入在第一行给出一个正整数N(≤10​4​​),是已知小圈子的个数。随后N行,每行按下列格式给出一个小圈子里的人:

K P[1] P[2] ⋯ P[K]

其中K是小圈子里的人数,P[i](i=1,⋯,K)是小圈子里每个人的编号。这里所有人的编号从1开始连续编号,最大编号不会超过10​4​​。

之后一行给出一个非负整数Q(≤10​4​​),是查询次数。随后Q行,每行给出一对被查询的人的编号。

输出格式:

首先在一行中输出这个社区的总人数、以及互不相交的部落的个数。随后对每一次查询,如果他们属于同一个部落,则在一行中输出Y,否则输出N

输入样例:

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

输出样例:

10 2
Y
N

我的代码:

#include<iostream>
#include<set>
using namespace std;
int f[10001],x,y,n,m,i;
set<int>s,ss;
int find(int x)
{if(f[x]==x) return x;else return f[x]=find(f[x]);
}
void mer(int x,int y)
{int a=find(x),b=find(y);if(a!=b) f[a]=b;
}
int main()
{for(i=0;i<=10000;i++) f[i]=i;cin>>x;while(x--){int a[1001];cin>>y;cin>>a[0];s.insert(a[0]);for(i=1;i<y;i++){cin>>a[i];s.insert(a[i]);mer(a[0],a[i]);}}set<int>::iterator it;for(it=s.begin();it!=s.end();it++) ss.insert(find(*it));cout<<s.size()<<" "<<ss.size()<<endl;cin>>x;while(x--){cin>>n>>m;if(find(n)==find(m)) puts("Y");else puts("N");}return 0;
}

7-4 部落(25 分)相关推荐

  1. 7-13 部落 (25 分)

    在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈.我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落?并且检查任意两个人是否属于同 ...

  2. C++学习之路 | PTA(天梯赛)—— L2-024 部落 (25分)(带注释)(并查集)(精简)

    L2-024 部落 (25分) 在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈.我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部 ...

  3. 【CCCC】L2-024 部落 (25分),,并查集,模板水题,统计集合个数

    problem L2-024 部落 (25分) 在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈.我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多 ...

  4. 【测试点4】基础实验4-2.8 部落 (25 分)

    立志用最简洁的代码做最高效的表达 在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈.我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的 ...

  5. 7-9 部落 (25分)

    输入样例: 4 3 10 1 2 2 3 4 4 1 5 7 8 3 9 6 4 2 10 5 3 7 输出样例: 10 2 Y N 最基本的并查集,带权路径压缩 源码: #include<st ...

  6. 7-21 部落(25 分)

    7-21 部落(25 分) 在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈.我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落? ...

  7. 12门课100分直博清华!这份成绩单冲上热搜,但学霸小伙也曾考过25分

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 金磊 明敏 发自 凹非寺 量子位 报道 | 公众号 QbitAI 一 ...

  8. PTA 7-3 旅游规划 (25分)(双权值Dijkstra最短路)

    7-3 旅游规划 (25分) 有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路费.现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径.如果有若干条路 ...

  9. PTA 03-树1 树的同构 (25分)

    题目地址 https://pta.patest.cn/pta/test/15/exam/4/question/711 5-3 树的同构   (25分) 给定两棵树T1和T2.如果T1可以通过若干次左右 ...

最新文章

  1. java计算器的重点解决问题_java计算器问题
  2. Matlab R2010在centost下的安装
  3. 干货整理!深度学习相关的面试考点
  4. 使用kubectl delete pods xxx删除对应的pod,提示删除成功,但是立马又会生成一个。为何?
  5. 牛客网(剑指offer) 第五题 用两个栈来实现一个队列
  6. 第02讲:夯实根基,Web 网页基础
  7. 使用SC命令使用(转)
  8. Visual Basic .NET处理Excle表格全接触
  9. 跨湖跨仓场景下如何实现海量数据分钟级分析
  10. 我爬了价值1800亿的商品信息
  11. define宏定义和const常量定义之间的区别
  12. Kconfig 基本笔录
  13. 【渝粤教育】21秋期末考试招投标与合同管理10217k2
  14. 创意:物品定位智能标签
  15. 如何禁用GeForce Experience的奖励广告
  16. 使用quartz 定时任务
  17. Java经典书籍推荐
  18. 《静态时序分析实用方法》第三章翻译
  19. 读数据优化 绝对值函数优化 加速 示范程序 洛谷P2345奶牛集会
  20. 如何才能让你的网店生意好到爆?

热门文章

  1. java 保留一位小数_java如何保留一位小数
  2. JavaScript中如何保留一位小数
  3. 51单片机串行通讯方式2
  4. 磁珠 磁环 电感的区别
  5. 看完跳槽少说涨 5 K,前端面试从准备到谈薪完全指南(全是精华)
  6. 刘韧:怎样培养记者素养
  7. ADI最新基带处理芯片 ADRV9002特性及 FPGA 驱动开发调试记录分享
  8. 商务表现仍不及三星Note5的iPhone何时会再出个SPen?
  9. 如何下载并生成等高线
  10. Java EE入门教程系列第二章JSP(三)——JSP指令与动作组件