#include<cstdio>
#include<algorithm>
#include<string>
#include<set>
using namespace std;
int main() {
set<int> s[51];
int N, M, K,temp;
scanf("%d", &N);
for (int i = 0; i < N; i++) {
scanf("%d", &M);
while (M--) {
scanf("%d", &temp);
s[i].insert(temp);
}
}
scanf("%d", &K);
int set1, set2;
while (K--) {
int c = 0;
scanf("%d %d", &set1, &set2);
set1--;
set2--;
if (s[set1].size() > s[set2].size()) {
swap(set1, set2);
}
set<int>::iterator temp;
for (set<int>::iterator it = s[set1].begin(); it != s[set1].end(); it++) {
if (s[set2].find(*it) != s[set2].end()) c++;
}
double totall = s[set1].size() + s[set2].size();
// printf("c: %d total: %f", c, totall);
printf("%.1f%%\n", c / (totall - c) * 100);
}
return 0;
}
1063 Set Similarity (25分) PAT
猜你喜欢
转载自blog.csdn.net/Ike_Lin/article/details/104329899