l2-005

L2-005. 集合相似度

时间限制

400 ms

内存限制

65536 kB

代码长度限制

8000 B

判题程序

Standard

作者

陈越

给定两个整数集合,它们的相似度定义为: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%

分析:我怎么感觉这题目题意不明啊。。。然后我去看了下别人的题意分析,懂了,简单说嘛就是nc代表了两个集合中相等的元素的个数,nz代表了两个集合的元素总个数,

nz其实就是两个集合的总元素减去两个集合中的相等的元素,即 s[i].size()+s[j].size()-nc,这里用到了STL中的set容器,其中迭代器iterator可以用来扫一遍集合中的元素

方便比较。

一开始我在想怎么区分该集合是第几个集合? 然后想了一下,既然set<int>s表示的是s是一个集合,那么set<int>s[maxn]表示的就是有maxn个集合,其中数组的下标可以用来表示这是第几个集合。

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int maxn=1e4+5;
 4 set<int>s[52];
 5 int a[maxn];
 6 set<int>::iterator it;
 7
 8 int main(){
 9     int n;
10     cin>>n;
11     int m, len=0;
12     for(int i=0; i<n; i++){
13         len++;
14         cin>>m;
15         int x;
16         for(int j=0; j<m; j++){
17             cin>>x;
18             s[len].insert(x);
19         }
20     }
21     int sum, a, b;
22     cin>>sum;
23     for(int i=0; i<sum; i++){
24         cin>>a>>b;
25         double same=0, total=0;
26         for(it=s[b].begin(); it!=s[b].end(); it++){
27             if(s[a].count(*it)) same++;
28         }
29         total=s[a].size()+s[b].size()-same;
30         printf("%.2f%\n", same/total*100);
31     }
32
33
34     return 0;
35 }
时间: 2024-08-18 02:37:46

l2-005的相关文章

LeetCode-Algorithms #005 Longest Palindromic Substring, Database #179 Consecutive Numbers

LeetCode-Algorithms #005 Longest Palindromic Substring 英语学习时间palindromic: [医] 复发的, 再发的 在数学和计算机上,就指回文 这道题目就是找出给定字符串中最长的回文子串, 可以假定原字符串的长度不超过1000 直接遍历来做肯定是不难, 但也可以想见一定是慢得可以. 那么我的另一个想法是, 从原串中的每一个字符, 或每两个字符中间的空隙开始, 向左右两边判断是否为回文串, 最后找出最长的 1 class Solution

正则化方法:L1和L2 regularization、数据集扩增、dropout

本文是<Neural networks and deep learning>概览 中第三章的一部分,讲机器学习/深度学习算法中常用的正则化方法.(本文会不断补充) 正则化方法:防止过拟合,提高泛化能力 在训练数据不够多时,或者overtraining时,常常会导致overfitting(过拟合).其直观的表现如下图所示,随着训练过程,网络在training data上的error渐渐减小,但是在验证集上的error却反而渐渐增大--因为训练出来的网络过拟合了训练集,对训练集外的数据却不work

windows_learn 005 软件部署

windows_learn 005  软件部署 内容总览 软件部署概述 将软件发布给用户 将软件分配给用户或计算机 将软件升级和重新部署 部署Microsoft Office 发布ZAP应用程序 软件部署的其它设置 将软件重新封装成MSI应用程序 第5章 使用组策略部署软件(p207) 可以通过AD DS组策略来为企业内部计算机部署(Deploy)软件,也就是自动为这些计算机 安装.维护和删除软件. 软件部署概述 即通过组策略来将软件部署给域内的计算机,来实现自动化安装和部署软件给客户端,而 软

JavaScript入门:005—JS基本语句

JS的基本语句如下.主要看看循环语句和选择语句.循环语句1.for循环 for(var i=1;i<100;i++){ //代码 } 2.do...while循环 var i = 0; do { i++; //代码 }while(i<100); 3.遍历 var array = new Array(); array[0] = "你懂的"; array[1] = "over"; array[2] = "呵呵"; array[3] = &

[第4组]典型场景:图片分类 工作序号:005 2017/7/6

场景工作序号005:照片分类1.背景1)典型用户:白领王女士2)客户的需求/迫切解决的问题王女士旅游归来想要将相机中杂乱无章的照片按景点分好类.3) 假设:a.王女士的照片已经导入到了本地磁盘中b.软件相关功能已实现完成.2.场景关于这个场景的文字描述白领王女士趁着放假和父母孩子一起去了张家界旅游,回来之后想要把拍的照片简单分类.打开软件后她先进入图库界面,点击页面上的设置按钮进入设置页面,然后她点击文件夹设置中的添加文件夹"+"符号,在选择好正确的本地图片存放路径后,他点击了确定按钮

机器学习中的范数规则化之(一)L0、L1与L2范数

机器学习中的范数规则化之(一)L0.L1与L2范数 [email protected] http://blog.csdn.net/zouxy09 转自:http://blog.csdn.net/zouxy09/article/details/24971995 今天我们聊聊机器学习中出现的非常频繁的问题:过拟合与规则化.我们先简单的来理解下常用的L0.L1.L2和核范数规则化.最后聊下规则化项参数的选择问题.这里因为篇幅比较庞大,为了不吓到大家,我将这个五个部分分成两篇博文.知识有限,以下都是我一

正则化方法:L1和L2 regularization、数据集扩增、dropout(转)

ps:转的.当时主要是看到一个问题是L1 L2之间有何区别,当时对l1与l2的概念有些忘了,就百度了一下.看完这篇文章,看到那个对W减小,网络结构变得不那么复杂的解释之后,满脑子的6666-------->把网络权重W看做为对上一层神经元的一个WX+B的线性函数模拟一个曲线就好.知乎大神真的多. 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 本文是<Neural networks and deep learning>概览 中第三章的一部分,讲机器学习/深度学习算

[LeetCode] 005. Longest Palindromic Substring (Medium) (C++/Java/Python)

索引:[LeetCode] Leetcode 题解索引 (C++/Java/Python/Sql) Github: https://github.com/illuz/leetcode 005.Longest_Palindromic_Substring (Medium) 链接: 题目:https://oj.leetcode.com/problems/Longest-Palindromic-Substring/ 代码(github):https://github.com/illuz/leetcode

欧拉项目005:最小公倍数

Smallest multiple Problem 5 2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder. What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20? 就是找出1....20 所有数的最

【qt学习005】搞不明白的布局

记录一下自己在布局这一章遇见的各种狗屎问题. 问题主要出现在布局最后一节:综合布局实例,类似于一个qq管理器的界面(见下图1).看见这个时,打算动手实现一下,于是开始写代码,写着写着发现不知道怎么写了,遇见一些无法解决的问题(问题中描述的布局类之间的关系见下图2): 1. 最底层应该使用哪一类? 2. 怎么将QListWidget加入到最底层? 3. 怎么往QStackWidget加入三个页面,每个页面代表不同的信息? 4. 怎么将QHBoxLayout中的CLOSE按钮连接到退出函数,要完整地