PAT Advanced 1063 Set Similarity (25 )
题目描述
Input Specification:
Output Specification:
Sample Input:
Sample Output:
解题思路
好好的一个set题,偏偏被我写成了map,出了乱七八糟的问题后终于迷途知返用回了set.
Code
- AC代码
#include<bits/stdc++.h>
using namespace std;
set<int> s[51];
int main() {
freopen("in.txt", "r", stdin);
int N, k;
cin >> N;
for(int i = 1; i<=N; i++) {
cin >> k;
int temp;
for(int j = 0; j<k; j++) {
cin >> temp;
s[i].insert(temp);
}
}
cin >> k;
for(int i = 0; i<k; i++) {
int s1, s2, nc = 0, nt = 0;
cin >> s1 >> s2;
if(s[s1].size() < s[s2].size()) {
swap(s1, s2);
}
nt = s[s1].size();
for(auto it : s[s2]) {
if(s[s1].find(it) != s[s1].end()) {
nc++;
} else {
nt++;
}
}
double res = 100.0*nc/nt;
printf("%.1f%\n", res);
}
return 0;
}