题目描述

分析:
set集合的一个应用
#include<cstdio>
#include<set>
using namespace std;
set<int> s[55];
int main(){
int n,k,x,y;
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&k);
for(int j=0;j<k;j++){
scanf("%d",&x);
s[i].insert(x);
}
}
scanf("%d",&k);
while(k--){
scanf("%d %d",&x,&y);
int total=s[y].size(),same=0;
for(set<int>::iterator it=s[x].begin();it!=s[x].end();it++){
if(s[y].count(*it)!=0)
//if(s[y].find(*it)!=s[y].end())
same++;
else
total++;
}
printf("%.1f%\n",same*100.0/total);
}
}
本文介绍如何使用C++的set数据结构来存储整数,并通过插入操作构建数据集。然后,针对输入的两个数据集,计算它们交集元素的百分比,以便于解决实际问题中的相似度分析。

被折叠的 条评论
为什么被折叠?



