集合相似度

输入样例:
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%
#include<iostream>
#include<cstdio>
#include<set>
#include<map>
#include<algorithm>
using namespace std;
const int maxn=55;
int main(){
int n,m,k;
set<int> st[maxn];
cin>>n;
for(int i=1;i<=n;i++){
cin>>m;
for(int j=0;j<m;j++){
cin>>k;
st[i].insert(k);
}
}
cin>>n;
while(n--){
int a,b;
set<int>ans;
cin>>a>>b;
set_intersection(st[a].begin(),st[a].end(),st[b].begin(),st[b].end(),inserter(ans,ans.begin()));
int Nc=ans.size();
int Nt=st[a].size()+st[b].size()-Nc;
printf("%.2f%\n",Nc*1.0/Nt*100.0);
}
}
7577

被折叠的 条评论
为什么被折叠?



