给定两个整数集合,它们的相似度定义为: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%

解题思路:运用STL自带的set解决

 1 #include<cstdio>
 2 #include<set>
 3 using namespace std;
 4
 5 int main(void)
 6 {
 7     set<int> s[55];
 8     int n;
 9     scanf("%d", &n);
10     for(int i = 1; i <= n; i++){
11         int m;
12         scanf("%d", &m);
13         for(int j = 0; j < m; j++){
14             int x;
15             scanf("%d", &x);
16             s[i].insert(x);
17         }
18     }
19
20     int k;
21     scanf("%d", &k);
22     for(int i = 0; i < k; i++){
23         int a, b;
24         scanf("%d %d", &a, &b);
25         int sum = s[a].size() + s[b].size();
26         set<int>::iterator it;
27         int same = 0;
28         for(it = s[a].begin(); it != s[a].end(); it++){
29             if(s[b].count(*it) == 1){
30                 same++; sum--;
31             }
32         }
33         double re = (double)same / (double)sum;
34         re *= 100;
35         printf("%.2lf%\n", re);
36     }
37
38     return 0;
39 }

转载于:https://www.cnblogs.com/fatcatm/p/8379732.html

L2-5 集合相似度 (set的应用)相关推荐

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

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

  2. L2-005 集合相似度 (25分)

    L2-005 集合相似度 (25分) 给定两个整数集合,它们的相似度定义为:N​c/N​t​​ ×100%.其中N​c 是两个集合都有的不相等整数的个数,N​t是两个集合一共有的不相等整数的个数.你的 ...

  3. 7-9 集合相似度 (25 分)(交集/并集)

    7-9 集合相似度 (25 分) 给定两个整数集合,它们的相似度定义为:Nc​/Nt​×100%.其中Nc​是两个集合都有的不相等整数的个数,Nt​是两个集合一共有的不相等整数的个数.你的任务就是计算 ...

  4. 【CCCC】L2-005 集合相似度 (25分),维护set数组去重,比较统计

    problem L2-005 集合相似度 (25分) 给定两个整数集合,它们的相似度定义为:N ​c ​​ /N ​t ​​ ×100%.其中N ​c ​​ 是两个集合都有的不相等整数的个数,N ​t ...

  5. L2-005 集合相似度(STL)

    题目链接:L2-005 集合相似度 考查知识:STL 题意描述: 给定两个整数集合,它们的相似度定义为:两个集合都有的不相等整数的个数 比上 两个集合一共有的不相等整数的个数. 计算任意一对给定集合的 ...

  6. 7-9 集合相似度 (25分)

    7-9 集合相似度 (25分) 给定两个整数集合,它们的相似度定义为:N ​c ​​ /N ​t ​​ ×100%.其中N ​c ​​ 是两个集合都有的不相等整数的个数,N ​t ​​ 是两个集合一共 ...

  7. 7-10 集合相似度 (25分)

    超时代码 // // Created by HMN on 2020/1/27. // /*7-10 集合相似度 (25分) 给定两个整数集合,它们的相似度定义为:N ​c ​​ /N ​t ​​ ×1 ...

  8. 天梯赛---7-6 集合相似度 (25分)

    7-6 集合相似度 (25分) 给定两个整数集合,它们的相似度定义为:N​c​​/N​t​​×100%.其中N​c​​是两个集合都有的不相等整数的个数,N​t​​是两个集合一共有的不相等整数的个数.你 ...

  9. 数据结构查找-7-4 集合相似度 (25 分)

    7-4 集合相似度 (25 分) 给定两个整数集合,它们的相似度定义为:Nc​/Nt​×100%.其中Nc​是两个集合都有的不相等整数的个数,Nt​是两个集合一共有的不相等整数的个数.你的任务就是计算 ...

  10. 7-9 集合相似度 (25 分)(天梯赛练习题)

    7-9 集合相似度 (25 分) 给定两个整数集合,它们的相似度定义为:Nc​/Nt​×100%.其中Nc​是两个集合都有的不相等整数的个数,Nt​是两个集合一共有的不相等整数的个数.你的任务就是计算 ...

最新文章

  1. Oracle数据库名与Oracle实例名的关系
  2. 数据结构与算法学习-开篇
  3. python关联分析引擎_PowerBI x Python 之关联分析(上)
  4. error while loading shared libraries: xxx.so.x错误的原因和解决办法
  5. 07.十分钟学会tomcat数据源
  6. 棋牌类游戏算法–牌分类_快速分类–三向和双枢轴
  7. 我们正处在“后开源”时代?
  8. 从第一范式到第二范式所做的操作是_数据库设计三大范式
  9. twig模板基本学习
  10. .Net转Java自学之路—Mybatis框架篇五(查询缓存)
  11. 阿里李飞飞:云原生分布式数据库面临哪些机遇与挑战?
  12. 联想小新锁屏壁纸怎么换_如何设置联想小新电脑锁屏时间
  13. 配置vscode解决code runner乱码
  14. Android接入微信SDK如何处理WXEntryActivity
  15. html中td是什么模块,html td什么意思
  16. html5 语音导航,百度地图个性化语音导航:用声音表心意
  17. 微信小程序 表情小作坊 — 轻松定制表情包 1
  18. nginx和ftp搭建图片服务器
  19. 神经网络权重是什么意思,神经网络权重调整方法
  20. VCC(电源)和 GND(地)之间电容的作用

热门文章

  1. SpringBoot2.x 中配置拦截器
  2. sqlserver命令行修改用户登录密码
  3. Logistic逻辑回归总结
  4. 主流的数据可视化工具介绍
  5. java list 效率_Java中5种List的去重方法及它们的效率对比,你用对了吗?
  6. h5外卖源码php_从零搭建外卖CPS平台小程序开发
  7. linux管理包安装软件命令,和vi/vim使用方法
  8. html 放上去动画停止,使用jQuery的animate()+CSS样式实现动画效果及stop()停止动画
  9. python3.7 matplotlib增加坐标说明_python matplotlib:如何在极坐标图中的轴和刻度标签之间插入更多空格?...
  10. 数据结构 3-1-1 栈