【佛山市选2013】JZOJ2020年8月7日提高组T3 海明距离
【佛山市选2013】JZOJ2020年8月7日提高组T3 海明距离
题目
描述
对于二进制串a,b,他们之间的海明距离是指两个串异或之后串中1的个数。异或的规则为:
0 XOR 0 = 0
1 XOR 0 = 1
0 XOR 1 = 1
1 XOR 1 = 0
计算两个串之间的海明距离的时候,他们的长度必须相同。现在我们给出N个不同的二进制串,请计算出这些串两两之间的最短海明距离。
数据
对于30%的数据有1≤N≤100
对于全部数据,有1≤N≤100000
题解
捕捉到一只翻车的HowarLi
题意
以\(n\)个长度为5的十六进制的形式给出\(n\)个二进制串,求这\(n\)个二进制串中两两之间的最短海明距离
海明距离的定义如题
emmm……
能说什么呢,数据过水将下述骗分大法放走了
这道题的AC算法只有一句话
将16进制转为10进制后取前1000个(\(n\)没有1000就取到\(n\)),然后暴力匹配求最短海明距离
Code
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define inf 2147483647
using namespace std;
int t,n,i,j,k,num,x,s,ans,a[10],c[100005];
char ch;
int main()
{
freopen("T3.in","r",stdin);
freopen("T3.out","w",stdout);
scanf("%d",&t);
while (t--)
{
memset(c,0,sizeof(c));
scanf("%d",&n);
for (i=1;i<=n;i++)
{
num=0;
memset(a,0,sizeof(a));
ch=getchar();
while ((ch<'0'||ch>'9')&&(ch<'A'||ch>'F')) ch=getchar();
while ((ch>='0'&&ch<='9')||(ch>='A'&&ch<='F'))
{
num++;
if (ch>='0'&&ch<='9') a[num]=ch-'0';
if (ch>='A'&&ch<='F') a[num]=ch-'A'+10;
ch=getchar();
}
c[i]=a[5]*1+a[4]*16+a[3]*256+a[2]*4096+a[1]*65536;
}
ans=inf;
sort(c+1,c+n+1);
for (i=1;i<=min(1000,n);i++)
for (j=i+1;j<=min(1000,n);j++)
{
x=c[i]^c[j];
s=0;
for (k=0;k<=19;k++)
if ((x&(1<<k))!=0) s++;
ans=min(ans,s);
}
printf("%d\n",ans);
}
fclose(stdout);
fclose(stdout);
return 0;
}
【佛山市选2013】JZOJ2020年8月7日提高组T3 海明距离的更多相关文章
- JZOJ2020年8月11日提高组T3 页
JZOJ2020年8月11日提高组T3 页 题目 Description 战神阿瑞斯听说2008年在中华大地上,将举行一届规模盛大的奥林匹克运动会,心中顿觉异常兴奋,他想让天马在广阔的天空上,举行一场 ...
- 【GDKOI2014】JZOJ2020年8月13日提高组T3 壕壕的寒假作业
[GDKOI2014]JZOJ2020年8月13日提高组T3 壕壕的寒假作业 题目 Description Input Output 输出n行.第i行输出两个整数,分别表示第i份作业最早完成的时刻以及 ...
- JZOJ2020年8月10日提高组T3 玩诈欺的小杉
JZOJ2020年8月10日提高组T3 玩诈欺的小杉 题目 Description 是这样的,在小杉的面前有一个N行M列的棋盘,棋盘上有\(N*M\)个有黑白棋的棋子(一面为黑,一面为白),一开始都是 ...
- 【佛山市选2013】JZOJ2020年8月7日提高组T2 树环转换
[佛山市选2013]JZOJ2020年8月7日提高组T2 树环转换 题目 描述 给定一棵N个节点的树,去掉这棵树的一条边需要消耗值1,为这个图的两个点加上一条边也需要消耗值1.树的节点编号从1开始.在 ...
- 【佛山市选2013】JZOJ2020年8月7日提高组T1 回文子序列
[佛山市选2013]JZOJ2020年8月7日提高组T1 回文子序列 题目 描述 回文序列是指左右对称的序列.例如1 2 3 2 1是回文序列,但是1 2 3 2 2就不是.我们会给定一个N×M的矩阵 ...
- 【五校联考1day2】JZOJ2020年8月12日提高组T2 我想大声告诉你
[五校联考1day2]JZOJ2020年8月12日提高组T2 我想大声告诉你 题目 Description 因为小Y 是知名的白富美,所以自然也有很多的追求者,这一天这些追求者打算进行一次游戏来踢出一 ...
- 【GDOI2007】JZOJ2020年8月10日提高组T1 夏娜的菠萝包
[GDOI2007]JZOJ2020年8月10日提高组T1 夏娜的菠萝包 题目 Description 夏娜很喜欢吃菠萝包,她的经纪人RC每半个月就要为她安排接下来的菠萝包计划.今天是7月份,RC又要 ...
- JZOJ2020年8月11日提高组T4 景点中心
JZOJ2020年8月11日提高组T4 景点中心 题目 Description 话说宁波市的中小学生在镇海中学参加计算机程序设计比赛,比赛之余,他们在镇海中学的各个景点参观.镇海中学共有n个景点,每个 ...
- JZOJ2020年8月11日提高组T2 宝石
JZOJ2020年8月11日提高组T2 宝石 题目 Description 见上帝动了恻隐之心,天后也想显示一下慈悲之怀,随即从口袋中取出一块魔术方巾,让身边的美神维纳斯拿到后堂的屏风上去试试,屏风是 ...
随机推荐
- 电脑查看当前自己的wifi密码
菜单+R 输入control 点击确认.
- 【Android Studio】安卓开发初体验3.1——UI设计之常用控件
常用控件 首先对xml文件的编辑有三种模式 Code为纯代码 Split是一边代码,一边预览效果图 Designer就是有UI设计界面 TextView 用于在界面上显示一段文本信息 所有控件都可以在 ...
- JQuery cdn地址
国外的CDN: 1.Google Hosted Libraries src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery ...
- springboot自动装配原理,写一个自己的start
springboot自动装配原理 第一次使用springboot的时候,都感觉很神奇.只要加入一个maven的依赖,写几行配置,就能注入redisTemple,rabbitmqTemple等对象. 这 ...
- 「BalticOI 2020」病毒
AC自动机+DP最短路转移 怎么说呢,挺套路的,也不是太难,但是一上手会被大量的信息淹没思路,还是要注意关注主要信息,不要被一些细节卡住 由于抗体是要在基因序里面出现过,那么考虑把抗体的序列检出AC自 ...
- 知识补充之Django信号量
信号 抛砖引玉 1.如何对数据库的增加操作记录日志 2.信号比中间件的区别 Django中提供了"信号调度",用于在框架执行操作时解耦.通俗来讲,就是一些动作发生的时候,信号允许特 ...
- bert做阅读理解的一个细节
如上图所示,展示了如何用BERT来做信息抽取任务的结构图.注意一下几点即可: 1.将Question和Paragraph分别作为BERT的text1和text2输入. 2.start/end span ...
- Pycharm激活码(2020最新永久激活码)
如果下边的Pycharm激活码过期失效了的话,大家可以关注我的微信公众号:Python联盟,然后回复"激活码"即可获取最新Pycharm永久激活码! 56NPDDVEIV-eyJs ...
- .NET操作Excel
一.读取Excel数据,并显示 1.配置文件 <configuration> <system.web> <compilation debug="true&quo ...
- VMware 虚拟机下CentOS 7连接网络
查看主机网络配置 ipconfig 1.在centos打开终端命令 2. 输入命令 cd /etc/sysconfig/network-scripts/ 进入文件 输入 ls查看此文件夹下的文件 3 ...