L2-005. 集合相似度(set使用)
2024-10-21 11:46:18
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%
#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 ;
}
最新文章
- MySQL ERROR 1005: Can&#39;t create table (errno: 150)的错误解决办法
- Dom4j 对XMl解析 新手学习,欢迎高手指正
- java 泛型接口示例
- c++ break while
- TQMsgPack序列还原clientdataset.data
- (转)CAP理论十二年回顾:";规则";变了
- Google开源库-Volley
- net 试图加载格式不正确的程序。(Exception from HRESULT: 0x8007000B)
- OCP读书笔记(24) - 题库(ExamD)
- jdk8 eclipse luna market crashed
- CSS3 Tranform 3D 的应用
- CLR 无法从 COM 上下文 0x208f68 转换为 COM 上下文 0x2090d8,这种状态已持续 60 秒
- uploadify上传图片的使用
- 664. Strange Printer
- 微信小程序富文本渲染组件html2wxml及html2wxml代码块格式化在ios下字体过大问题
- Error &#39;LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or cor
- hbase RowFilter如何根据rowkey查询以及实例实现代码 habase模糊查询【转】
- Ubuntu12.10下Python(cx_Oracle)访问Oracle解决方案
- Python3 Tkinter-Spinbox
- 以下suse11.3x64可以安装pycrypto-2.6.1
热门文章
- c++ boost库学习一:时间和日期
- python批量修改文件名称
- tomcat 日志禁用
- Mysql -- You can&#39;t specify target table &#39;address&#39; for update in FROM clause
- 安装,配置webpack.
- Linux 软链接操作项目
- 【转载】JAVA中线程的两种实现方法-实现Runnable接口和继承Thread类
- 编写TreeSet类的实现程序,其中相关的迭代器使用二叉查找树
- django 使用多说 评论系统
- 分享知识-快乐自己:Spring线程池配置