集合相似度-easy-stl-set
Posted am6a6
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集合相似度-easy-stl-set相关的知识,希望对你有一定的参考价值。
#include<iostream>
#include<cstdio>
#include<set>
#define MAXSIZE 51
using namespace std;
set<int> s[MAXSIZE];/*建立set数组,自动除去重复的并且升序排好,然后利用count函数即可,知识点:stl-set*/
double Same(int t1, int t2) {
double result = 0.0;
int counter = 0;
for (auto it = s[t1].begin(); it != s[t1].end(); ++it) {
if (s[t2].count(*it))//count函数
++counter;
}
result = (counter * 1.0) / (s[t1].size() + s[t2].size() - counter);
return result;
}
int main() {
int N, K;
cin >> N;
for (int i = 1, num; i <= N; ++i) {
cin >> num;
for (int j = 0, temp; j < num; ++j) {
cin >> temp;
s[i].insert(temp);
}
}
cin >> K;
for (int i = 0, t1, t2; i < K; ++i) {
cin >> t1 >> t2;
printf("%.2f%%
", 100 * Same(t1, t2));
}
return 0;
}
以上是关于集合相似度-easy-stl-set的主要内容,如果未能解决你的问题,请参考以下文章