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 ;
}

最新文章

  1. MySQL ERROR 1005: Can&#39;t create table (errno: 150)的错误解决办法
  2. Dom4j 对XMl解析 新手学习,欢迎高手指正
  3. java 泛型接口示例
  4. c++ break while
  5. TQMsgPack序列还原clientdataset.data
  6. (转)CAP理论十二年回顾:&quot;规则&quot;变了
  7. Google开源库-Volley
  8. net 试图加载格式不正确的程序。(Exception from HRESULT: 0x8007000B)
  9. OCP读书笔记(24) - 题库(ExamD)
  10. jdk8 eclipse luna market crashed
  11. CSS3 Tranform 3D 的应用
  12. CLR 无法从 COM 上下文 0x208f68 转换为 COM 上下文 0x2090d8,这种状态已持续 60 秒
  13. uploadify上传图片的使用
  14. 664. Strange Printer
  15. 微信小程序富文本渲染组件html2wxml及html2wxml代码块格式化在ios下字体过大问题
  16. Error &#39;LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or cor
  17. hbase RowFilter如何根据rowkey查询以及实例实现代码 habase模糊查询【转】
  18. Ubuntu12.10下Python(cx_Oracle)访问Oracle解决方案
  19. Python3 Tkinter-Spinbox
  20. 以下suse11.3x64可以安装pycrypto-2.6.1

热门文章

  1. c++ boost库学习一:时间和日期
  2. python批量修改文件名称
  3. tomcat 日志禁用
  4. Mysql -- You can&#39;t specify target table &#39;address&#39; for update in FROM clause
  5. 安装,配置webpack.
  6. Linux 软链接操作项目
  7. 【转载】JAVA中线程的两种实现方法-实现Runnable接口和继承Thread类
  8. 编写TreeSet类的实现程序,其中相关的迭代器使用二叉查找树
  9. django 使用多说 评论系统
  10. 分享知识-快乐自己:Spring线程池配置