题目来源:团体程序设计天梯赛-练习集
题目地址:L2-005 集合相似度

题目大意

给定 nnn 个集合,然后有 kkk 次询问,每次询问都要求出 Nc/Nt×100%N_c / N_t \times100\%Nc​/Nt​×100%

NcN_cNc​ 表示两个集合中都有的数的个数(重复不计),相当于求交集去重
NtN_tNt​ 表示两个集合一共有多少个数(重复不计),相当于求并集去重

题目分析

根据题意,我们在存储集合就时候就可以将重复元素去掉,可以用上C++ STL提供的 setsetset 容器,它不会保存重复元素。

设要求的两个集合分别为 AAA 和 BBB,它们的大小分别为 SizeASize_ASizeA​ 和 SizeBSize_BSizeB​

我们先遍历集合 AAA ,每访问一个元素就判断它是否在集合 BBB中出现,如果出现,则计数器 cntcntcnt 加一,最后得出的 cntcntcnt 就是 NcN_cNc​

因为有 cntcntcnt 个数在集合 AAA 出现一遍,又在集合 BBB 中出现了一遍,所以求 NtN_tNt​ 的时候我们需要将它减去,最后我们得到求 NtN_tNt​ 的式子如下:
Nt=SizeA+SizeB−cntN_t=Size_A+Size_B-cntNt​=SizeA​+SizeB​−cnt

代码如下

#include <bits/stdc++.h>using namespace std;
int n, m, t, k, a, b;
const int maxn = 1e4 + 10;
/*** 利用stl中set来进行集合的存储*/
set<int> vis[maxn];
int main()
{scanf("%d", &n);for (int i = 1; i <= n; i++) {scanf("%d", &m);while (m--) {scanf("%d", &t);vis[i].insert(t);}}scanf("%d", &k);while (k--) {scanf("%d %d", &a, &b);// set.size() 返回的是集合中不同元素的个数int cnt1 = vis[a].size(), cnt2 = vis[b].size(), cnt3 = 0;for (auto e : vis[a]) {if (vis[b].count(e))cnt3++;}printf("%.2f%\n", (double)cnt3 / (cnt1 + cnt2 - cnt3) * 100);}return 0;
}

如果本文对你有所帮助,记得要点赞哦~

L2-005 集合相似度-PAT团体程序设计天梯赛GPLT相关推荐

  1. L2-005. 集合相似度-PAT团体程序设计天梯赛GPLT

    给定两个整数集合,它们的相似度定义为:Nc/Nt*100%.其中Nc是两个集合都有的不相等整数的个数,Nt是两个集合一共有的不相等整数的个数.你的任务就是计算任意一对给定集合的相似度. 输入格式: 输 ...

  2. L2-016. 愿天下有情人都是失散多年的兄妹-PAT团体程序设计天梯赛GPLT(广度优先bfs)

    呵呵.大家都知道五服以内不得通婚,即两个人最近的共同祖先如果在五代以内(即本人.父母.祖父母.曾祖父母.高祖父母)则不可通婚.本题就请你帮助一对有情人判断一下,他们究竟是否可以成婚? 输入格式: 输入 ...

  3. L3-012 水果忍者 (30 分)-PAT 团体程序设计天梯赛 GPLT

    2010年风靡全球的"水果忍者"游戏,想必大家肯定都玩过吧?(没玩过也没关系啦~)在游戏当中,画面里会随机地弹射出一系列的水果与炸弹,玩家尽可能砍掉所有的水果而避免砍中炸弹,就可以 ...

  4. L3-011 直捣黄龙 (30 分)-PAT 团体程序设计天梯赛 GPLT

    本题是一部战争大片 -- 你需要从己方大本营出发,一路攻城略地杀到敌方大本营.首先时间就是生命,所以你必须选择合适的路径,以最快的速度占领敌方大本营.当这样的路径不唯一时,要求选择可以沿途解放最多城镇 ...

  5. L3-006 迎风一刀斩 (30 分)-PAT 团体程序设计天梯赛 GPLT

    迎着一面矩形的大旗一刀斩下,如果你的刀够快的话,这笔直一刀可以切出两块多边形的残片.反过来说,如果有人拿着两块残片来吹牛,说这是自己迎风一刀斩落的,你能检查一下这是不是真的吗? 注意摆在你面前的两个多 ...

  6. L1-060 心理阴影面积 (5 分)-PAT 团体程序设计天梯赛 GPLT

    这是一幅心理阴影面积图.我们都以为自己可以匀速前进(图中蓝色直线),而拖延症晚期的我们往往执行的是最后时刻的疯狂赶工(图中的红色折线).由红.蓝线围出的面积,就是我们在做作业时的心理阴影面积. 现给出 ...

  7. [Python] L1-005. 考试座位号-PAT团体程序设计天梯赛GPLT

    L1-005. 考试座位号 每个PAT考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号 ...

  8. L2-027 名人堂与代金券-PAT团体程序设计天梯赛GPLT

    对于在中国大学MOOC学习"数据结构"课程的学生,想要获得一张合格证书,总评成绩必须达到 60 分及以上,并且有另加福利:总评分在 [G, 100] 区间内者,可以得到 50 元 ...

  9. L1-050 倒数第N个字符串-PAT团体程序设计天梯赛GPLT

    给定一个完全由小写英文字母组成的字符串等差递增序列,该序列中的每个字符串的长度固定为 L,从 L 个 a 开始,以 1 为步长递增.例如当 L 为 3 时,序列为 { aaa, aab, aac, . ...

最新文章

  1. tags cloud
  2. 图(1)——图的定义和基本概念
  3. 怎么给el-select两级联动赋值_医保改革:支付范围、支付标准、支付方式的联动,大有可为...
  4. 乡村振兴谋定齐鲁样板-农业大健康·周荣江:国情讲坛创新
  5. 解决 LLVM 错误 fatal error: ‘csignal’ file not found
  6. 面对金九银十铜十一你真的准备好了吗?
  7. 案例:无人测量船水库水下地形测量及库容量计算
  8. CoreJava 笔记总结-第五章 继承
  9. db2的bufferpool不足报错的快速解决
  10. 提交数据网页设计_网站网页编写需要注意哪些问题?
  11. init是一个自定义方法名
  12. 优化方法总结(梯度下降法、牛顿法、拟牛顿法等)
  13. ad转3d视图快捷键_AD 常用快捷键
  14. CVX用户指南之求解器
  15. 信息安全工程师真题1
  16. 算法可以申请专利么_华为突破封锁,对标谷歌Dropout专利,开源自研算法Disout...
  17. 挂载NFS的两种方法
  18. 中文改写神器下载-中文改写神器
  19. stm32—超声波传感器
  20. 《小窗幽记》卷五 集素

热门文章

  1. 08-Measured Boot Driver (MBD)
  2. (6)段描述符D/B位
  3. angr学习笔记(6)(内存地址单元符号化)
  4. 告诉你,初学网络安全应该怎样去学呢?安排的明明白白的
  5. 【PHP】常用日期函数
  6. 【HTTPS】Let's Encrypt certbot renew
  7. 用CMD命令实现一个简单的网页搜索
  8. Linux搜索查找命令合集
  9. 2.4.3 死锁的处理策略-避免死锁
  10. MySQL事务的可串行化