7-35 部落 (10 分)

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

输入格式:

输入在第一行给出一个正整数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>
using namespace std;
const int N = 1010;
int n, k, a, b, p[N], maxn, cnt, m;
int find(int x) {if(x != p[x]) p[x] = find(p[x]);return p[x];
}
void add(int x, int y) {x = find(x), y = find(y);p[x] = find(y);
}
void init() {for (int i = 1; i <= N; i++) {p[i] = i;}
}
int main() {cin >> n;init();for (int i = 0; i < n; i++) {cin >> k;for (int j = 0; j < k; j++) {if(j == 0) {cin >> a;maxn = max(a, maxn);}else {cin >> b;maxn = max(b, maxn);add(a, b);}}}for (int i = 1; i <= maxn; i++) {if (p[i] == i) cnt++;}cout << maxn << ' ' << cnt << endl;cin >> m;for (int i = 0; i < m; i++) {cin >> a >> b;if(find(a) != find(b)) cout << "N\n";else cout << "Y\n";}return 0;
}

7-35 部落 (10 分)相关推荐

  1. 7-13 部落 (25 分)

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

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

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

  3. 7-323 逆波兰表达式 (10 分)

    7-323 逆波兰表达式 (10 分) 逆波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的逆波兰表示法为+ 2 3.逆波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改 ...

  4. PTA18、图的字典表示 (10 分)

    18.图的字典表示 (10 分) 图的字典表示.输入多行字符串,每行表示一个顶点和该顶点相连的边及长度,输出顶点数,边数,边的总长度.比如上图0点表示: {'O':{'A':2,'B':5,'C':4 ...

  5. 热门开源后端软件Parse Server中存在严重的 RCE ,CVSS评分10分

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 专栏·供应链安全 数字化时代,软件无处不在.软件如同社会中的"虚拟人",已经成为支撑社会正常运转的最基本元素之一,软件的安全 ...

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

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

  7. 7-2 打印九九口诀表 (10 分)

    7-2 打印九九口诀表 (10 分) 下面是一个完整的下三角九九口诀表: 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1 ...

  8. 6-3 设计一个长方体类Cuboid (10 分)

    6-3 设计一个长方体类Cuboid (10 分) 要求:设计一个名为Cuboid的类表示长方体.这个类包括三个名为length.width和height 的double型数据域,它们分别表示长方体的 ...

  9. 10年java 工作难找吗_对比3-5年和10年的Java程序员,差距在哪里?

    对比3-5年和10年的Java程序员,差距在哪里? 找工作过程中我们经常会看到"与工作年限相匹配的水平"这样的字眼,那么究竟什么样才算是匹配呢? 当然,这个话题可以说是仁者见仁,智 ...

最新文章

  1. 如何复制静态文件以使用Webpack构建目录?
  2. maven3常用命令、java项目搭建、web项目搭建
  3. eclipse安装hadoop插件及配置
  4. Mondrian 3.14.0 服务配置说明(限功能使用验证)
  5. 搞多媒体开发?吴威麒:先拉个书单看看
  6. qq互联android sdk,qq互联.Android
  7. 潍职e校帮APP功能简介
  8. php rest api lumen,lumen Rest API 起步
  9. 「PDF Expert」macOS 全能型 PDF 工具——功能介绍
  10. 一些CFD名词缩写的含义(持续更新中)
  11. <数据结构> 顺序表
  12. C# 如何将EMF文件转换成PNG文件
  13. NC—NCC常用数据库表
  14. 人体各部分英语 图片
  15. Android:layout_weight详解
  16. Chrome 扩展 Pomodoro 开发小结
  17. 赛尔号对战c语言程序,赛尔号计算解析系列文章(第一期)
  18. A7600C USIM卡接口设计
  19. 抓包神器 Charles 使用教程详解
  20. Bitbucket使用说明与SourceTree的使用

热门文章

  1. Android中打包含有Activity以及资源文件的jar包在工程中调用
  2. 操作行内样式-对象语法//操作行内样式-数组语法
  3. 小汤学编程之jQuery学习day01——简介、入门、选择器
  4. luogu P4070 [SDOI2016]生成魔咒
  5. Eclipse创建SpringMVC,Spring, Hibernate项目
  6. Linux命令笔记(一)
  7. hdu 1525 博弈
  8. showcase basketball stadium
  9. 【Emit基础】如何发射foreach代码?
  10. Retrofit网络请求框架使用简析——Android网络请求框架(四)