L2-005. 集合相似度

题目:

 

这个题最后一个数据没有通过 ,先这样吧,过几天应该有题解,到时候在完善一下。。。

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <set>
using namespace std;
//<int> s[50];
struct node {
    int c=0;//zongzhi
    set<int > s;
};
node ans[51];
int ch[51];
int main()
{
    int n,x,m,k;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        scanf("%d",&m);
        while(m--)
        {
            scanf("%d",&x);
            ans[i].s.insert(x);
            //ans[i].c++;
        }
        ans[i].c=ans[i].s.size();
    }
    scanf("%d",&k);
    int a,b;
    node ans1;
    while(k--)
    {
        scanf("%d%d",&a,&b);
        ans1.s.clear();
        
        for(set<int>::iterator it=ans[a-1].s.begin();it!=ans[a-1].s.end();it++)
        {
            ans1.s.insert(*it);
            
        }
        for(set<int>::iterator it=ans[b-1].s.begin();it!=ans[b-1].s.end();it++)
        {
            ans1.s.insert(*it);
            //ans1.c++;
        }
        int sum=ans1.s.size();
        int nc=ans[a-1].c+ans[b-1].c-sum;
        //double 
        printf("%.2f",nc*1.0/sum*100);
        printf("%%\n");
        
               
    }
    return 0;
}

 

posted on 2016-05-15 20:57  青春的梦想付诸行动  阅读(201)  评论(0编辑  收藏  举报

导航