浙大PAT 1063题 1063. Set Similarity

来源:互联网 发布:tf卡数据修复软件 编辑:程序博客网 时间:2024/06/15 03:38
#include<iostream>#include<set>#include<cstdio>using namespace std;int main(){int n,m,k,i,j;int tmp,s1,s2;set<int>myset[50];set<int>::iterator it1,it2;scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&m);for(j=0;j<m;j++){scanf("%d",&tmp);myset[i].insert(tmp);}}cin>>k;for(i=0;i<k;i++){scanf("%d %d",&s1,&s2);int cnt=0;for(it1=myset[s1-1].begin(),it2=myset[s2-1].begin();it1!=myset[s1-1].end()&&it2!=myset[s2-1].end();){if(*it1==*it2){cnt++;it1++;it2++;}else if(*it1<*it2){it1++;}else{it2++;}}float ans=100.0*cnt/(myset[s1-1].size()+myset[s2-1].size()-cnt);printf("%.1f%%\n",ans);}return 0;}

0 0
原创粉丝点击