L2-005 集合相似度 java
输入样例:
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%
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
ArrayList<HashSet<Integer>> list = new ArrayList<>();
for(int i=0;i<n;i++) {
int m=sc.nextInt();
list.add(new HashSet<>());
for(int j=0;j<m;j++) {
list.get(i).add(sc.nextInt());
}
}
int k=sc.nextInt();
for(int i=0;i<k;i++) {
HashSet<Integer> temp = new HashSet<>();
HashSet<Integer> all = new HashSet<>();
int common=0;
int x=sc.nextInt();
int y=sc.nextInt();
for(Object o:list.get(x-1)) {
all.add((Integer)o);
temp.add((Integer)o);
}
for(Object o :list.get(y-1)) {
all.add((Integer)o);
if(temp.add((Integer) o)==false) {
common++;
}
}
System.out.printf("%.2f%%\n",100.0*common/all.size());
}
}
}