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

输入格式:

输入第一行给出一个正整数N(<=50),是集合的个数。随后N行,每行对应一个集合。每个集合首先给出一个正整数M(<=104),是集合中元素的个数;然后跟M个[0, 109]区间内的整数。

之后一行给出一个正整数K(<=2000),随后K行,每行对应一对需要计算相似度的集合的编号(集合从1到N编号)。数字间以空格分隔。

输出格式:

对每一对需要计算的集合,在一行中输出它们的相似度,为保留小数点后2位的百分比数字。

输入样例:

3
3 99 87 101
4 87 101 5 87
7 99 101 18 5 135 18 99
2
1 2
1 3

输出样例:

50.00%
33.33%

题目大意:nc是两个集合的公共元素个数,nt是两个集合的所有包含的元素个数(其中元素个数表示各个元素之间互不相同)

分析:因为给出的集合里面含有重复的元素,而计算nc和nt不需要考虑两个集合里面是否分别有重复的元素,所以可以直接使用set存储每一个集合,然后把set放进一个数组里面存储。当需要计算集合a和集合b的相似度nc和nt的时候,遍历集合a中的每一个元素,寻找集合b中是否有该元素,如果有,说明是两个人公共的集合元素,则nc++,否则nt++(nt的初值为b集合里面本有的元素)

#include <set>
#include <vector>
#include <cstdio>
using namespace std;
int main() {int n, m, k, temp, a, b;scanf("%d", &n);vector<set<int>> v(n);for(int i = 0; i < n; i++) {scanf("%d", &m);set<int> s;for(int j = 0; j < m; j++) {scanf("%d", &temp);s.insert(temp);}v[i] = s;}scanf("%d", &k);for(int i = 0; i < k; i++) {scanf("%d %d", &a, &b);int nc = 0, nt = v[b-1].size();for(auto it = v[a-1].begin(); it != v[a-1].end(); it++) {if(v[b-1].find(*it) == v[b-1].end()) {nt++;} else {nc++;}}double ans = (double)nc / nt * 100;printf("%.2f%%\n", ans);}return 0;
}

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

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

    题目来源:团体程序设计天梯赛-练习集 题目地址:L2-005 集合相似度 题目大意 给定 nnn 个集合,然后有 kkk 次询问,每次询问都要求出 Nc/Nt×100%N_c / N_t \times ...

  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. DL之RNN:基于RNN实现模仿贴吧留言
  2. Fedora20 优化体验
  3. 研旭电子dsp配套程序_为什么自动调音DSP还火不了?
  4. WebRTC 那些常用的缩略词以及部分知识杂谈
  5. 常哥带你认识NoSQL和Redis的强大
  6. 搭建nginx流媒体服务器(支持HLS)
  7. Spring Cloud Stream如何处理消息重复消费
  8. 巨额流量费其实可以避免
  9. LVS/NAT的配置和应用
  10. Hinton胶囊网络代码正式开源,5天GitHub fork超1.4万
  11. 前端js导出excel代码及出现的中文乱码和数字过长等问题的解决办法
  12. SPSS教程—如何安装加权kappa计算插件
  13. java实现医嘱管理系统_Chis5.0医嘱管理系统业务使用手册
  14. jQuery boxy弹出层对话框插件中文演示及讲解
  15. html怎么改变字段字体,怎么换字体?
  16. 世界地图展开图,来自 Simon's World Map
  17. 天猫精灵使用体验之二——家用电器的智能化改造(借助天猫精灵实现家用电器的语音控制)
  18. 文件后缀bat是什么?(批处理文件)
  19. 家装产业的数字化,正在成为越来越多人的新共识
  20. PS快速选择照片背景

热门文章

  1. 2018-2019-1 20165320 《信息安全系统设计基础》第八周学习总结
  2. 【500-Lines-or-Less】-【翻译练习】-【chapter-14】-【简单对象模型】-【第三部分】...
  3. 高仿快递100--实战之RadioGroup和RadioButton应用
  4. springboot 常用插件
  5. Laravel系列教程一:安装及环境配置
  6. javascript:void(0)的作用示例
  7. 设计模式(三)模版方法(行为型)
  8. 简单搭配(Collocation)隐私声明
  9. NSA和CISA 联合发布Kubernetes 安全加固指南
  10. DS博客大作业--树(李天明组)