L2-005. 集合相似度

参考:http://blog.csdn.net/qsort_/article/details/51833704

 

 

#include <cstdio>
#include <algorithm>
#include <iostream>
#include <set>

using namespace std;

int main()
{
int n, m, k, a, l, r;
set<int> s[50];
scanf("%d", &n) ;
for(int i=0; i<n; i++)
{
scanf("%d", &m);
for(int j=0; j<m; j++)
{
cin >> a;
s[i].insert(a);
}
}
set<int>::iterator it;


cin >> k;
int co;
while(k--)
{
cin >> l >> r;
l--;
r--;
co = 0;
for(it=s[l].begin(); it!=s[l].end(); it++ )
{
if(s[r].count((*it))) //如果找到了,给co加1,最后得到l和r集合相同元素的个数
co++;
}

printf("%.2lf%%\n", (double)co/(double)(s[l].size() + s[r].size() - co)*100);
}

return 0;
}

posted @ 2017-08-16 09:16  diamondDemand  阅读(114)  评论(0)    收藏  举报