【佛山市选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 海明距离的更多相关文章

  1. JZOJ2020年8月11日提高组T3 页

    JZOJ2020年8月11日提高组T3 页 题目 Description 战神阿瑞斯听说2008年在中华大地上,将举行一届规模盛大的奥林匹克运动会,心中顿觉异常兴奋,他想让天马在广阔的天空上,举行一场 ...

  2. 【GDKOI2014】JZOJ2020年8月13日提高组T3 壕壕的寒假作业

    [GDKOI2014]JZOJ2020年8月13日提高组T3 壕壕的寒假作业 题目 Description Input Output 输出n行.第i行输出两个整数,分别表示第i份作业最早完成的时刻以及 ...

  3. JZOJ2020年8月10日提高组T3 玩诈欺的小杉

    JZOJ2020年8月10日提高组T3 玩诈欺的小杉 题目 Description 是这样的,在小杉的面前有一个N行M列的棋盘,棋盘上有\(N*M\)个有黑白棋的棋子(一面为黑,一面为白),一开始都是 ...

  4. 【佛山市选2013】JZOJ2020年8月7日提高组T2 树环转换

    [佛山市选2013]JZOJ2020年8月7日提高组T2 树环转换 题目 描述 给定一棵N个节点的树,去掉这棵树的一条边需要消耗值1,为这个图的两个点加上一条边也需要消耗值1.树的节点编号从1开始.在 ...

  5. 【佛山市选2013】JZOJ2020年8月7日提高组T1 回文子序列

    [佛山市选2013]JZOJ2020年8月7日提高组T1 回文子序列 题目 描述 回文序列是指左右对称的序列.例如1 2 3 2 1是回文序列,但是1 2 3 2 2就不是.我们会给定一个N×M的矩阵 ...

  6. 【五校联考1day2】JZOJ2020年8月12日提高组T2 我想大声告诉你

    [五校联考1day2]JZOJ2020年8月12日提高组T2 我想大声告诉你 题目 Description 因为小Y 是知名的白富美,所以自然也有很多的追求者,这一天这些追求者打算进行一次游戏来踢出一 ...

  7. 【GDOI2007】JZOJ2020年8月10日提高组T1 夏娜的菠萝包

    [GDOI2007]JZOJ2020年8月10日提高组T1 夏娜的菠萝包 题目 Description 夏娜很喜欢吃菠萝包,她的经纪人RC每半个月就要为她安排接下来的菠萝包计划.今天是7月份,RC又要 ...

  8. JZOJ2020年8月11日提高组T4 景点中心

    JZOJ2020年8月11日提高组T4 景点中心 题目 Description 话说宁波市的中小学生在镇海中学参加计算机程序设计比赛,比赛之余,他们在镇海中学的各个景点参观.镇海中学共有n个景点,每个 ...

  9. JZOJ2020年8月11日提高组T2 宝石

    JZOJ2020年8月11日提高组T2 宝石 题目 Description 见上帝动了恻隐之心,天后也想显示一下慈悲之怀,随即从口袋中取出一块魔术方巾,让身边的美神维纳斯拿到后堂的屏风上去试试,屏风是 ...

随机推荐

  1. 【USACO】Cow Brainiacs

    题意描述 Cow Brainiacs 求 \(n!\) 在 \(b\) 进制表示下的第一位非 \(0\) 位的数字. 算法分析 闲话 忙人自动略过 之前做过一道 \(10\) 进制表示下的题目,感觉差 ...

  2. redhat 7.4从openssh7.6离线升级openssh8.4p1解决方法

    具体需求 这几天生产环境服务器又进行了安全扫描,每次都会报一下漏洞错误.虽然只有一个高危问题,但是每次看到ssh远程漏洞都很烧脑 "主要是里面坑太多了",闲话就不说了,今天我们来看 ...

  3. 【Kata Daily 190909】The Supermarket Queue(超市队列)

    题目: There is a queue for the self-checkout tills at the supermarket. Your task is write a function t ...

  4. MySQL中load data infile将文件中的数据批量导入数据库

    有时候我们需要将文件中的数据直接导入到数据库中,那么我们就可以使用load data infile,下面具体介绍使用方法. dao中的方法 @Autowired private JdbcTemplat ...

  5. SWT JFace 小制作 文本阅读器

    1 package swt_jface.demo11; 2 import java.io.File; 3 import java.io.FileInputStream; 4 import java.i ...

  6. Android基础——项目的文件结构(三)

    Android基础--项目的文件结构(三) 代码源文件夹与资源文件夹 [注]此项目文件结构仅限于Android Studio下的Android项目!!! 在一个Android项目中,代码源文件夹有4个 ...

  7. 鸿蒙开发板外设控制 之 实现物理按键的“长按事件”(按键通用框架 V0.0.2)

    我在之前的帖子<实现按键"按下事件"和"释放事件"的通用框架(V0.0.1)>中阐述了DTButton-V0.0.1的设计思路,并且也在帖子中开源了 ...

  8. project--客户信息管理系统

    软件设计分析 该软件有三个模块组成:Customer  CustomerList  CustomerView Customer 为实体对象,用来封装客户信息: CustomerList 为 Custo ...

  9. Java多线程技术:实现多用户服务端Socket通信

    目录 前言回顾 一.多用户服务器 二.使用线程池实现服务端多线程 1.单线程版本 2.多线程版本 三.多用户与服务端通信演示 四.多用户服务器完整代码 最后 前言回顾 在上一篇<Java多线程实 ...

  10. mysql中key和index的关系

    原文链接:https://blog.csdn.net/top_code/article/details/50599840