题目
Input Specification:
Each input file contains one test case. Each case first gives a positive integer N (≤50) which is the total number of sets. Then N lines follow, each gives a set with a positive M (≤104) and followed by M integers in the range [0,109]. After the input of sets, a positive integer K (≤2000) is given, followed by K lines of queries. Each query gives a pair of set numbers (the sets are numbered from 1 to N). All the numbers in a line are separated by a space.
Output Specification:
For each query, print in one line the similarity of the sets, in the percentage form accurate up to 1 decimal place.
Sample Input:
3
3 99 87 101
4 87 101 5 87
7 99 101 18 5 135 18 99
2
1 2
1 3
Sample Output:
50.0%
33.3%
文章大意
找出两个集合的相似度,nc就是两个集合中相同的元素个数,nt就是两个集合合并去重后元素的个数
思路
利用set输入集合,可以做到去重,用vector的数组存储每一个set集合,然后利用find函数找出两个函数相同的元素,设置一个计数器,相同则++
实现
#include <iostream>
#include <stdio.h>
#include <set>
#include <vector>
using namespace std;
int main()
{
int n = 0, k, a, b;