题目描述

Given two sets of integers, the similarity of the sets is defined to be Nc/Nt*100%, where Nc is the number of distinct common numbers shared by the two sets, and Nt is the total number of distinct numbers in the two sets. Your job is to calculate the similarity of any given pair of sets.

输入

Each input file contains one test case. Each case first gives a positive integer N (<=50) which is the total number of sets. Then N lines follow, each gives a set with a positive M (<=104) and followed by M integers in the range [0, 109]. After the input of sets, a positive integer K (<=2000) is given, followed by K lines of queries. Each query gives a pair of set numbers (the sets are numbered from 1 to N). All the numbers in a line are separated by a space.

输出

For each query, print in one line the similarity of the sets, in the percentage form accurate up to 1 decimal place.

样例输入

3
3 99 87 101
4 87 101 5 87
7 99 101 18 5 135 18 99
2
1 2
1 3

样例输出

50.0%
33.3%

思路:很显然使用set来做这个题,思路是把两个集合(假设为a,b)里的元素放进一个新的集合里,这个新集合里的元素的个数就是Nt,而Nc的值就是a和b两个集合的元素个数相加再减取Nt,但是这样的话算法的时间复杂度较高,因此换一个思路,在b集合里找a集合元素,找到的话Nc加1,因为find()的时间复杂度比较优秀。而Nt的值就是a和b两个集合里的元素个数之和减去Nc,虽然耗时还是很高,但是可以AC。

#include <iostream>
#include <cstdio>
#include <set>
using namespace std;int main()
{set<int> s[10000];int i,j,n,m,k,x,a,b;scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&m);for(j=0;j<m;j++){scanf("%d",&x);s[i+1].insert(x); }}scanf("%d",&k);double Nc,Nt;for(i=0;i<k;i++){scanf("%d%d",&a,&b);set<int>::iterator it;Nc=0;for(it=s[a].begin();it!=s[a].end();it++){if(s[b].find(*it)!=s[b].end())Nc++;}Nt=s[a].size()+s[b].size()-Nc;printf("%.1lf%\n",Nc*100/Nt);}return 0;
}

Codeup——597 | 问题 A: Set Similarity (25)相关推荐

  1. 1063. Set Similarity (25)

    题目例如以下: Given two sets of integers, the similarity of the sets is defined to be Nc/Nt*100%, where Nc ...

  2. 【最后测试点超时】1063 Set Similarity (25 分)_22行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 Given two sets of integers, the similarity of the sets is defined ...

  3. 1063 Set Similarity (25 分) java 题解

    Given two sets of integers, the similarity of the sets is defined to be Nc​/Nt​×100%, where Nc​ is t ...

  4. 1063 Set Similarity (25 分)【难度: 一般 / 知识点: STL中set的应用】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805409175420928 可以很容易的写出一个最暴力的写法.可以骗21 ...

  5. CF597 (Div. 2)题解

    A.乱搞gcd B.模拟题 C. 原始串中'w'字符会被替换成 uu 'm'字符会被替换成nn, 给你一个字符串,问你他原串有多少种可能 nnn -> nnn nm mn 3种 nnnn -&g ...

  6. codeup墓地目录(算法笔记习题刷题笔记)

    在线codeup contest 地址:http://codeup.cn/contest.php Contest100000575 - <算法笔记>3.1小节--入门模拟->简单模拟 ...

  7. 算法笔记CodeUp第一至第六章刷题记录

    文章目录 <算法笔记>2.2小节--C/C++快速入门->顺序结构 1.例题1-1-1 按要求输出信息(1) 2.例题1-1-2 按要求输出信息(2) 3.例题1-2-1 求两个整数 ...

  8. codeup墓地目录

    代码内容为原创C++ 在线codeup contest 地址:http://codeup.cn/contest.php Contest100000575 - <算法笔记>3.1小节--入门 ...

  9. 1063 Set Similarity

    1063 Set Similarity (25 分) Given two sets of integers, the similarity of the sets is defined to be N ...

最新文章

  1. 机器学习笔记:交叉验证
  2. codeup 2044 暴力搜索
  3. 35岁北大博士拟升市长
  4. 设计模式学习笔记——模板(Template)模式
  5. libevent的线程优雅的退出方式
  6. [转]MySQL索引背后的数据结构及算法原理
  7. iphone7p配置参数详情_华为mate40标准版参数配置-参数详情
  8. 森林病虫防治系统 (七)
  9. 【vs2019MFC】msvcrtd.lib(exe_main.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 “int __cdecl invoke_mai
  10. python的迭代器_python迭代器详解
  11. thuwc9102划水记
  12. 小程序下载PDF等类型文件并保存到本地
  13. orcad导出BOM
  14. Apple 宣布 2021 年 Apple Design Awards 获奖者
  15. Java未来城市练习代码01
  16. 计算机网络微课堂笔记
  17. Codeforces Round #807 (Div. 2)A~E个人题解
  18. Arcgis desktop 10及Arcgis Engine 10破解
  19. oracle公共同义词查找,[Oracle]同义词(synonym)
  20. CMWAP和CMNET的主要区别及穿透CMWAP限制原理

热门文章

  1. 高德地图各种摄像头图标_高德导航中,限速摄像头,违章摄像头,监控摄像头各有什么区别...
  2. Java反射机制的学习(转)
  3. OS-Experiment for NUAA
  4. vacuum命令详解
  5. 计算机科学ESI 2020年7月,2020年7月ESI学科高水平论文134篇
  6. 嵌入式C/C++面试题
  7. 知名影音平台投入朕亨公益!在世界动物日进行义卖关爱动物
  8. 【预测模型】基于Logistic混沌映射改进麻雀算法改进BP神经网络实现数据预测matlab源码
  9. 【Scratch考级99图】图10-等级考试scratch 画正五边形
  10. GMAT Sentence Correction(2): 修饰语的一些相关问题研究