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

简介: 7-9 集合相似度 (25 分)(交集/并集)

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


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


输入格式:


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


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


输出格式:


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


输入样例:


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


输出样例:


50.00%
33.33%


#include<iostream>
#include<set>
using namespace std;
const int N = 60;
set<int>s[N];
int n, m, x, k, a, b;
int nc, nt;
int main() {
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> m;
        for (int j = 0; j < m; j++) {
            cin >> x;
            s[i].insert(x);
        }
    }
    cin >> k;
    for (int i = 0; i < k; i++) {
        cin >> a >> b, nc = 0;
        set<int>::iterator it;
        for (it = s[b].begin();it != s[b].end(); it++) {
            if (s[a].find(*it) != s[a].end()) nc++;
        } 
        nt = s[a].size() + s[b].size() -nc;
        printf("%.2lf%%\n", nc * 100.0 / nt );
    }
    return 0;
}
目录
相关文章
Python中常用的数据结构与算法优化技巧指南
Python是一种强大而灵活的编程语言,它提供了丰富的数据结构和算法库,但是在处理大规模数据或者需要高效运行的情况下,需要考虑一些优化技巧。本文将介绍一些Python中常用的数据结构与算法优化技巧,并附带代码实例,帮助你更好地理解和运用。
|
前端开发 JavaScript 应用服务中间件
nginx配置vue前端代理
nginx配置vue前端代理
400 0
|
Linux API C语言
C语言的TCPServer和select/poll/epoll并发探讨
C语言的TCPServer和select/poll/epoll并发探讨
|
数据安全/隐私保护 计算机视觉
qss样式表笔记大全(三):可设置样式的窗口部件列表(中)(持续更新示例) 一
qss样式表笔记大全(三):可设置样式的窗口部件列表(中)(持续更新示例)
qss样式表笔记大全(三):可设置样式的窗口部件列表(中)(持续更新示例) 一
|
存储 机器学习/深度学习 Java
Java学习 9.Java-数组 讲解及习题
Java学习 9.Java-数组 讲解及习题
146 0
|
Java Android开发
[√]Android NDK 编译报错
[√]Android NDK 编译报错
178 0
|
C语言 数据安全/隐私保护
C语言的一些简单练习题(下)
C语言的一些简单练习题(下)
109 0
|
缓存 开发工具 数据安全/隐私保护
|
JSON 测试技术 Go
Golang之我想写个"web框架"-6: 获取POST请求报文提交的数据
Golang之我想写个"web框架"-6: 获取POST请求报文提交的数据
262 0
|
Arthas 存储 SQL
线上接口流量突增,扛不住了
线上接口流量突增,扛不住了
349 0
线上接口流量突增,扛不住了

热门文章

最新文章