AcWing 1549. 集合相似度
原题链接
中等
作者:
sherlook
,
2020-08-27 16:51:13
,
所有人可见
,
阅读 746
#include <iostream>
#include <vector>
#include <unordered_set>
using namespace std;
vector<unordered_set<int>> sets;
int n,k;
int main(){
cin >>n;
for(int i=0; i<n; i++){
int m; cin >>m;
unordered_set<int> t;
for(int j=0; j<m; j++){
int a; cin >>a;
t.insert(a);
}
sets.push_back(t);
}
cin >>k;
for(int i=0; i<k; i++){
int a,b; cin >>a >>b;
a -= 1; b-= 1;
int nc=0,nt=sets[a].size();
for(auto j=sets[b].begin(); j!=sets[b].end(); j++){
if(sets[a].find(*j) == sets[a].end())
nt ++;
else
nc ++;
}
double res = (nc*1.0)/nt * 100;
printf("%.1f%%\n",res);
}
return 0;
}