L2-005. 集合相似度(set使用)
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 <cstdio>
#include <algorithm>
#include <iostream>
#include <set>
#include<cstdio>
using namespace std; int main()
{
int n, m, k, a, l, r;
set<int> s[];
scanf("%d", &n) ;
for(int i=; i<n; i++)
{
scanf("%d", &m);
for(int j=; j<m; j++)
{
cin >> a;
s[i].insert(a);
}
}
set<int>::iterator it;
cin >> k;
int co;
while(k--)
{
cin >> l >> r;
l--;
r--;
co = ;
for(it=s[l].begin(); it!=s[l].end(); it++ )
{
if(s[r].count((*it)))
co++;
}
/*if(s[r].count(*(s[l].end()))) //按理要写,但写了说我越界
co++; */
printf("%.2lf%%\n", (double)co/(double)(s[l].size() + s[r].size() - co)*);
} return ;
}
其他要求
#include <bits/stdc++.h> using namespace std;
const int MAXN=1e5+;
int n,m,k;
int l[];
int num[][];
int ans[];
int main()
{
scanf("%d",&n);
for(int i=;i<n;++i)
{
scanf("%d",&l[i]);
for(int j=;j<l[i];++j)scanf("%d",&num[i][j]);
sort(num[i],num[i]+l[i]);
l[i]=unique(num[i],num[i]+l[i])-num[i];
}
int u,v;
scanf("%d",&m);
while(m--)
{
scanf("%d%d",&u,&v);
u--;
v--;
int cnt=;
for(int i=;i<l[u];++i)ans[cnt++]=num[u][i];
for(int i=;i<l[v];++i)ans[cnt++]=num[v][i];
sort(ans,ans+cnt);
int cnt1=unique(ans,ans+cnt)-ans;
printf("%.2f%%\n",(cnt-cnt1)*100.0/cnt1);
}
return ;
}
L2-005. 集合相似度(set使用)的更多相关文章
- 团体程序设计天梯赛-练习集L2-005. 集合相似度
L2-005. 集合相似度 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定两个整数集合,它们的相似度定义为:Nc/Nt*1 ...
- L2-005. 集合相似度(STL)*
L2-005. 集合相似度 参考博客 #include<cstdio> #include<set> #include<cstdlib> using namespac ...
- pat 集合相似度
L2-005. 集合相似度 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定两个整数集合,它们的相似度定义为:Nc/Nt*1 ...
- 天梯杯 L2-005. 集合相似度
L2-005. 集合相似度 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定两个整数集合,它们的相似度定义为:Nc/Nt*1 ...
- PTA 7-9 集合相似度(STL之set初体验)
7-9 集合相似度(25 分) 给定两个整数集合,它们的相似度定义为:Nc/Nt×100%.其中Nc是两个集合都有的不相等整数的个数,Nt是两个集合一共有的不相等整数的个数.你 ...
- L2-005 集合相似度 (25 分) (STL——set)
链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805070149828608 题目: 给定两个整数集合,它们的相似度 ...
- PAT L2-005 集合相似度(模拟集合set)
给定两个整数集合,它们的相似度定义为:Nc/Nt*100%.其中Nc是两个集合都有的不相等整数的个数,Nt是两个集合一共有的不相等整数的个数.你的任务就是计算任意一对给定集合的相似度. 输入格式: 输 ...
- 天梯赛 L2-005 集合相似度 (set容器)
给定两个整数集合,它们的相似度定义为:Nc/Nt*100%.其中Nc是两个集合都有的不相等整数的个数,Nt是两个集合一共有的不相等整数的个数.你的任务就是计算任意一对给定集合的相似度. 输入格式: 输 ...
- PAT L2-005 集合相似度
https://pintia.cn/problem-sets/994805046380707840/problems/994805070149828608 给定两个整数集合,它们的相似度定义为:/.其 ...
随机推荐
- 【转载】Android端百度地图API使用详解
转载地址:http://www.cnblogs.com/rocomp/p/4994110.html 百度地图API简介 百度地图移动版API(Android)是一套基于Android设备的应用程序接口 ...
- python脚本发送电子邮件
#!/usr/bin/pythonimport smtplibimport stringHOST='smtp.qq.com'#HOST='mail.qq.com'SUBJECT='Test email ...
- 利用paramiko获取上传下载远程服务器的资源信息
# -*- coding: utf-8 -*- import paramikohostname='192.168.76.10'username='root'password='123456'param ...
- Kubernetes TLS认证
转自: https://mritd.me/2018/01/07/kubernetes-tls-bootstrapping-note/ 前段时间撸了一会 Kubernetes 官方文档,在查看 TLS ...
- SQl查询基础
SQL语言是一门简单易学却又功能强大的语言,他让你快速上手并写出比较复杂的查询语句,但对于大多数开发者来书,使用SQL查询数据库并没有一个抽象的过程和一个合理的步骤,这很可能会是在写一些特定的查询语句 ...
- windows 10系统更新失败的解决办法
最近遇到一个问题,系统总是自动下载一个更新,看样子是个补丁吧,但是每次提醒重新启动以安装更新,但每次又安装失败,回退.就这样,下载,重启,安装失败,下载......一直循环,搞得都不敢关机了,因为这样 ...
- 用外部物理路由器时使用Neutron dhcp-agent提供的metadata服务(by quqi99)
作者:张华 发表于:2015-12-29版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http://blog.csdn.net/quqi99 ) 环境搭 ...
- uva 1025 A Spy int the Metro
https://vjudge.net/problem/UVA-1025 看见spy忍俊不禁的想起省赛时不知道spy啥意思 ( >_< f[i][j]表示i时刻处于j站所需的最少等待时间,有 ...
- poj 1836 LIS变形
题目链接http://poj.org/problem?id=1836 Alignment Time Limit: 1000MS Memory Limit: 30000K Total Submiss ...
- 开始学Python
怎么说,整体还是比较愚昧的.不知道该干什么,大学里学过C++,C语言,忘的差不多了.毕业了做的是SAP,自学过一段JAVA.总是东一榔头西一棒子,借口还是多. 那就说一些现状嘛,语言重在的是应用这个方 ...