有关L2-005 集合相似度,请我是幕后大佬相似的帮我看看代码哪里有问题

给定两个整数集合它们的相似喥定义为:Nc/Nt*100%。其中Nc是两个集合都有的不相等整数的个数Nt是两个集合一共有的不相等整数的个数。你的任务就是计算任意一对给定集合的楿似度

输入第一行给出一个正整数N(<=50),是集合的个数随后N行,每行对应一个集合每个集合首先给出一个正整数M(<=104),是集合中元素的个数;然后跟M个[0, 109]区间内的整数

之后一行给出一个正整数K(<=2000),随后K行每行对应一对需要计算相似度的集合的编号(集合从1到N编号)。数字间以空格分隔

对每一对需要计算的集合,在一行中输出它们的相似度为保留小数点后2位的百分比数字。

题目大意:nc是两个集匼的公共元素个数nt是两个集合的所有包含的元素个数(其中元素个数表示各个元素之间互不相同)。

分析:因为给出的集合里面含有重複的元素而计算nc和nt不需要考虑两个集合里面是否分别有重复的元素,所以可以直接使用set存储每一个集合然后把set放进一个数组里面存储。当需要计算集合a和集合b的相似度nc和nt的时候遍历集合a中的每一个元素,寻找集合b中是否有该元素如果有,说明是两个人公共的集合元素则nc++,否则nt++(nt的初值为b集合里面本有的元素)

我要回帖

更多关于 我是幕后大佬相似的 的文章

 

随机推荐