pta l2-5(集合相似度)
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805070149828608
题意:求两个集合的相同的不同元素的个数与所有不同元素个数的比值。
思路:直接用STL库里的set就可以解决。
AC代码:
#include<bits/stdc++.h> using namespace std; set<int> st[55]; int n,m,k,a,b,tmp; int main(){ scanf("%d",&n); for(int i=1;i<=n;++i){ scanf("%d",&m); while(m--){ scanf("%d",&tmp); st[i].insert(tmp); } } scanf("%d",&k); while(k--){ scanf("%d%d",&a,&b); int cnta=st[a].size(),cntb=st[b].size(),cnt=0; for(set<int>::iterator it=st[a].begin();it!=st[a].end();++it) if(st[b].count(*it)) ++cnt; printf("%.2f%%\n",cnt*100.0/((cnta+cntb-cnt)*1.0)); } return 0; }
朋友们,无论这个世界变得怎样,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。