7-4 部落(25 分)
7-4 部落(25 分)
在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈。我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落?并且检查任意两个人是否属于同一个部落。
输入格式:
输入在第一行给出一个正整数N(≤104),是已知小圈子的个数。随后N行,每行按下列格式给出一个小圈子里的人:
K P[1] P[2] ⋯ P[K]
其中K是小圈子里的人数,P[i](i=1,⋯,K)是小圈子里每个人的编号。这里所有人的编号从1开始连续编号,最大编号不会超过104。
之后一行给出一个非负整数Q(≤104),是查询次数。随后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 分)相关推荐
- 7-13 部落 (25 分)
在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈.我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落?并且检查任意两个人是否属于同 ...
- C++学习之路 | PTA(天梯赛)—— L2-024 部落 (25分)(带注释)(并查集)(精简)
L2-024 部落 (25分) 在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈.我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部 ...
- 【CCCC】L2-024 部落 (25分),,并查集,模板水题,统计集合个数
problem L2-024 部落 (25分) 在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈.我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多 ...
- 【测试点4】基础实验4-2.8 部落 (25 分)
立志用最简洁的代码做最高效的表达 在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈.我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的 ...
- 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 ...
- 7-21 部落(25 分)
7-21 部落(25 分) 在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈.我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落? ...
- 12门课100分直博清华!这份成绩单冲上热搜,但学霸小伙也曾考过25分
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 金磊 明敏 发自 凹非寺 量子位 报道 | 公众号 QbitAI 一 ...
- PTA 7-3 旅游规划 (25分)(双权值Dijkstra最短路)
7-3 旅游规划 (25分) 有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路费.现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径.如果有若干条路 ...
- PTA 03-树1 树的同构 (25分)
题目地址 https://pta.patest.cn/pta/test/15/exam/4/question/711 5-3 树的同构 (25分) 给定两棵树T1和T2.如果T1可以通过若干次左右 ...
最新文章
- java计算器的重点解决问题_java计算器问题
- Matlab R2010在centost下的安装
- 干货整理!深度学习相关的面试考点
- 使用kubectl delete pods xxx删除对应的pod,提示删除成功,但是立马又会生成一个。为何?
- 牛客网(剑指offer) 第五题 用两个栈来实现一个队列
- 第02讲:夯实根基,Web 网页基础
- 使用SC命令使用(转)
- Visual Basic .NET处理Excle表格全接触
- 跨湖跨仓场景下如何实现海量数据分钟级分析
- 我爬了价值1800亿的商品信息
- define宏定义和const常量定义之间的区别
- Kconfig 基本笔录
- 【渝粤教育】21秋期末考试招投标与合同管理10217k2
- 创意:物品定位智能标签
- 如何禁用GeForce Experience的奖励广告
- 使用quartz 定时任务
- Java经典书籍推荐
- 《静态时序分析实用方法》第三章翻译
- 读数据优化 绝对值函数优化 加速 示范程序 洛谷P2345奶牛集会
- 如何才能让你的网店生意好到爆?