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;
}
目录
相关文章
|
5月前
|
算法 Python
Python实现求多个集合之间并集的方法
Python实现求多个集合之间并集的方法
46 0
Python实现求多个集合之间并集的方法
|
7月前
|
机器学习/深度学习 算法 测试技术
【状态压缩 并集查找 图论】2157. 字符串分组
【状态压缩 并集查找 图论】2157. 字符串分组
【状态压缩 并集查找 图论】2157. 字符串分组
L2-005 集合相似度 (25 分)(set+容斥)
L2-005 集合相似度 (25 分)(set+容斥)
58 0
L2-005 集合相似度 (25 分)(set+容斥)
2023-4-6-C++Vector求交集并集和差集(去除冗余数)
2023-4-6-C++Vector求交集并集和差集(去除冗余数)
102 0
|
存储 安全 Java
Java常用集合的总结,集合中的(交集,并集,差集,补集,对称差集)
Java常用集合的总结,集合中的(交集,并集,差集,补集,对称差集)
440 0
Java常用集合的总结,集合中的(交集,并集,差集,补集,对称差集)
|
C++ Windows 容器
L2-005 集合相似度 (25 分)(set集合)
L2-005 集合相似度 (25 分)(set集合)
99 0
|
自然语言处理 Python
Python编程:通过交集并集计算文档相似度
Python编程:通过交集并集计算文档相似度
124 0
|
Windows
7-9 集合相似度
7-9 集合相似度 给定两个整数集合,它们的相似度定义为:N ​c ​​ /N ​t ​​ ×100%。其中N ​c ​​ 是两个集合都有的不相等整数的个数,N ​t ​​ 是两个集合一共有的不相
181 0
|
机器学习/深度学习 人工智能
【集合论】集合运算 ( 并集 | 交集 | 不相交 | 相对补集 | 对称差 | 绝对补集 | 广义并集 | 广义交集 | 集合运算优先级 )
【集合论】集合运算 ( 并集 | 交集 | 不相交 | 相对补集 | 对称差 | 绝对补集 | 广义并集 | 广义交集 | 集合运算优先级 )
1205 0