PAT天梯赛L2-005 集合相似度
给定两个整数集合,它们的相似度定义为:Nc/Nt*100%。其中Nc是两个集合都有的不相等整数的个数,Nt是两个集合一共有的不相等整数的个数。你的任务就是计算任意一对给定集合的相似度。
输入格式:
输入第一行给出一个正整数N(<=50),是集合的个数。随后N行,每行对应一个集合。每个集合首先给出一个正整数M(<=104),是集合中元素的个数;然后跟M个[0, 109]区间内的整数。
之后一行给出一个正整数K(<=2000),随后K行,每行对应一对需要计算相似度的集合的编号(集合从1到N编号)。数字间以空格分隔。
输出格式:
对每一对需要计算的集合,在一行中输出它们的相似度,为保留小数点后2位的百分比数字。
输入样例:
3
3 99 87 101
4 87 101 5 87
7 99 101 18 5 135 18 99
2
1 2
1 3
输出样例:
50.00%
33.33%
#include<iostream>
#include<set>
using namespace std;
set<int> s[55];
void cal(int u, int v) {
  int nc = 0;
  for(set<int> :: iterator it = s[u].begin(); it != s[u].end(); it++) {//从一个集合在另一个集合找相等的
    if(s[v].find(*it) != s[v].end())
      nc++;
  }
  int nt = s[u].size() + s[v].size() - nc;//总是不这样想,所以超时了
  printf("%.2lf%%\n", (double)nc / nt * 100);
}
int main() {
  int n, m, x;
  cin >> n;
  for(int i = 1; i <= n; i++) {//处理数据
    scanf("%d", &m);
    for(int j = 0; j < m; j++) {
      scanf("%d", &x);
      s[i].insert(x);
    }
  }
  int c_num, u, v;
  cin >> c_num;
  for(int i = 0; i < c_num; i++) {
    scanf("%d %d", &u, &v);
    cal(u, v);
  }
  return 0;
}												
											PAT天梯赛L2-005 集合相似度的更多相关文章
- PAT天梯赛 L1-049 天梯赛座位分配
		
题目链接:点击打开链接 天梯赛每年有大量参赛队员,要保证同一所学校的所有队员都不能相邻,分配座位就成为一件比较麻烦的事情.为此我们制定如下策略:假设某赛场有 N 所学校参赛,第 i 所学校有 M[i] ...
 - PAT天梯赛L3-007 天梯地图
		
题目链接:点击打开链接 本题要求你实现一个天梯赛专属在线地图,队员输入自己学校所在地和赛场地点后,该地图应该推荐两条路线:一条是最快到达路线:一条是最短距离的路线.题目保证对任意的查询请求,地图上都至 ...
 - PAT天梯赛练习题——L3-007. 天梯地图(多边权SPFA)
		
L3-007. 天梯地图 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 本题要求你实现一个天梯赛专属在线地图,队员输入自己学校 ...
 - PTA天梯赛L2
		
L2-001 紧急救援 题意:就是给你一张n<500的图:让你求最短路径,最短路条数,以及路径: 做法,先用dijkstra求最短路,然后dfs找最短路条数,以及点权的最大值: 一般dfs不就可 ...
 - PAT 天梯赛 L2-005 集合相似度
		
set的应用 题目链接 题解 有点像集合的交并操作,直接利用set进行处理,因为set有去重的功能,而且set是利用红黑树实现的,查找速度快O(logN). 代码如下: #include<cst ...
 - PAT 天梯赛 L2-005. 集合相似度 【SET】
		
题目链接 https://www.patest.cn/contests/gplt/L2-005 思路 因为集合中的元素 是不重复的 所以用SET 来保存 集合 然后最后 查找一下 两个集合中共有元素 ...
 - pat天梯赛练习集合 L3-007 天梯地图
		
加了一些花的最短路,点的个数为500不需要堆优化,改一下dij的判断条件就可以了. 上代码: #include <iostream> #include <cstring> #i ...
 - PAT天梯赛练习题 L3-002. 堆栈(线段树查询第K大值或主席树)
		
L3-002. 堆栈 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 大家都知道“堆栈”是一种“先进后出”的线性结构,基本操作有 ...
 - PAT天梯赛练习题 L3-010. 是否完全二叉搜索树(完全二叉树的判断)
		
L3-010. 是否完全二叉搜索树 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 将一系列给定数字顺序插入一个初始为空的二叉搜 ...
 
随机推荐
- hibernate 单元测试
			
单元测试 测试 dao service action package com.kaishengit.test; import org.hibernate.Session; import com.ka ...
 - 具有避障和寻线功能的Arduino小车
			
标签: Arduino 乐高 机器人 创客对于成年人来说,多半是科技娱乐,或者是一种是一种向往科技的人生态度,总是希望自己不仅可以看到或者听到科技的资讯,还希望能够亲身制作科技玩意,从而更好地体 ...
 - 删除CentOS系统自带的jdk
			
转自:https://www.cnblogs.com/linjiqin/archive/2013/03/23/2977377.html 在安装CentOS6.4时,系统会自动安装jdk,先把它下载掉, ...
 - DAY13-前端之JavaScript
			
JavaScript概述 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中),后将其改名ScriptEase(客 ...
 - 2016上海浦东汽车展览会C+罩杯 车模名单
			
只能帮你们到这了
 - dp-矩阵连乘
			
参考:http://blog.csdn.net/liufeng_king/article/details/8497607 使用备忘录算法复杂度降至O(n^3) #include<stdio.h& ...
 - Error: Cannot run program "/home/xxx/android_developer_tools/android-ndk-r8/ndk-build.cmd": Unknown reason
			
运行OpenCV官方例子 tutorial-2-mixedprocessing 总提示 /home/xxx/android_developer_tools/ 明明在PATH中采用好几种方法都加入了 ...
 - 通过id设置的css属性和通过元素设置的css属性冲突了,优先级哪个高?
			
---恢复内容开始--- <!DOCTYPE html> <html> <head> <title>div test</title> < ...
 - JavaScript 学习中
			
邮箱的验证: <!DOCTYPE html><html> <head> <meta charset="UTF-8"&g ...
 - Qemu虚拟机 玩树莓派最新版系统 (截止2017-04-10)
			
Qemu虚拟机可以玩 树莓派,大家都知道了吧.可是网上的教程好老,都是2012年的.我按照教程下载了最新版版本的树莓派系统怎么也跑不起来. 研究了好久,终于找到一个简单的方法,特意分享出来.转载请注意 ...