方法:运用set容器的size函数得到集合的不同元素值个数。
#include <iostream>
#include <set>
using namespace std;
set<int> s[60];
int N,K;
int main(){
scanf("%d",&N);
for(int i=1;i<=N;i++){
int M,temp;
scanf("%d",&M);
for(int j=0;j<M;j++){
scanf("%d",&temp);
s[i].insert(temp);
}
}
scanf("%d",&K);
for(int i=0;i<K;i++){
int v1,v2;
scanf("%d%d",&v1,&v2);
int sum=s[v1].size()+s[v2].size();
set<int> temp=s[v1];
for(set<int>::iterator it=s[v2].begin();it!=s[v2].end();it++)
temp.insert(*it);
int Nt=temp.size(),Nc=sum-temp.size();
printf("%.1f%\n",Nc*1.0/Nt*100);
}
return 0;
}