hdoj 4712 Hamming Distance(靠人品过的)

简介: 在信息论中,两个等长字符串之间的汉明距离是两个字符串对应位置的字符不同的个数。换句话说,它就是将 一个字符串变换成另外一个字符串所需要替换的字符个数。

我先解释一下汉明距离  以下来自百度百科


在信息论中,两个等长字符串之间的汉明距离是两个字符串对应位置的字符不同的个数。换句话说,它就是将 一个字符串变换成另外一个字符串所需要替换的字符个数。 例如:

* 1 与 0 之间的汉明距离是 1。

* 214 与 214 之间的汉明距离是 0。

* "abcd" 与 "aacd" 之间的汉明距离是 1。

汉明重量是字符串相对于同样长度的零字符串的汉明距离,也就是说,它是字符串中非零的元素个数:对于二进制字符串来说,就是 1 的个数,所以 11101 的汉明重量是 4。

汉明距离在信息论、密码学等方向有很重要的应用。

这个题是让你求n个数两两之间最小的汉明距离,而且规定了每个数是长度为5的16进制数,可以想到求出最大的值为20,最小为10。 没想到什么好的算法,看了人家的解题报告,依靠RP,随机找1000000对点求最小值,不过还是过了。

#include<algorithm>
#include<stdio.h>
#include <stdlib.h>
#define inf 1000000007
using namespace std;
int M[100005];
int count(int x,int y)
{
  int sum=0,p=x^y;
  while (p)
    sum+=p%2,p>>=1;
  return sum;
}
int main()
{
  int T,y,n,d,i,j,x;
  scanf("%d",&T);
  while (T--)
  {
    scanf("%d",&n);
    for (i=1;i<=n;i++)
    {
      scanf("%X", &M[i]);
    }
    int ans=inf;
    for (i=1;i<=1000000;i++)
    {
      x=rand()%n+1;
      y=rand()%n+1;
      if (x==y) continue;
      ans=min(ans,count(M[x],M[y]));
    }
    printf("%d\n",ans);
  }
  return 0;
}
目录
相关文章
|
Windows
Anaconda卸载与重装过程记录
本文记录了博主Anaconda卸载与重装过程记录,此为博主电脑环境发生变化,无奈之举,希望对大家有所帮助
2976 0
Anaconda卸载与重装过程记录
|
小程序 Linux 开发工具
【Linux】——使用yum进行软件安装和卸载&&Win和Linux文件交互
在前几篇的文章中我们介绍了Linux下的各种指令、权限等操作。想必大家已经熟悉并且能够快速的上手和应用了吧!那如何在Linux下安装卸载软件呢?这就是我们今天探讨的话题。让我们开始今天的旅程吧!!!
【Linux】——使用yum进行软件安装和卸载&&Win和Linux文件交互
|
设计模式 Kubernetes 网络架构
【K8s源码品读】004:Phase 1 - kubectl - 发送创建Pod请求的实现细节
理解kubectl是怎么向kube-apiserver发送请求的
179 0
|
消息中间件 负载均衡 前端开发
吃透这份Github点赞120k的Spring全家桶笔记Offer拿到手软
Spring框架自诞生以来一直备受开发者青睐,有人亲切的称之为:Spring 全家桶。它包SpringMVC、SpringBoot、Spring Cloud、Spring Data等解决方案。 很多研发人员把spring看作心目中最好的java项目,没有之一。Spring系列包含非常多的项目,可以满足java开发中的方方面面。所以这是重点也是难点,工作中必须会,面试时肯定考。 下面我会为大家介绍一些上面所说方案的相关实战PDF及面试资料,希望会对大家有所帮助~
|
API
vue3和vue2 v-model 和sync语法糖区别
1.最近在搞v3的时候那些和v2典型的区别组合式API什么的都没啥大问题,但是遇到了父子组件通信的一些简洁写法的区别,记录如下
416 0
|
Web App开发 网络协议 Linux
阿里云平台下Terraform+Packer一键部署WordPress案例
## 前言 前面 [云生态下的基础架构资源管理利器Terraform](https://yq.aliyun.com/articles/215592?spm=5176.8091938.0.0.qNh0er) 一文对Terraform做了产品介绍,包括安装、模板配置文件编写,资源构建与销毁等。这里通过介绍Terraform + Packer 在阿里云平台上一键部署WordPress的案例,以供大家使
2995 0
|
Web App开发 负载均衡 算法
Windows平台下利用APM来做负载均衡方案 - 负载均衡(下)
概述   我们在上一篇Windows平台分布式架构实践 - 负载均衡中讨论了Windows平台下通过NLB(Network Load Balancer) 来实现网站的负载均衡,并且通过压力测试演示了它的效果,可以说还是非常的理想的。
1417 0
|
消息中间件 监控 Kafka
Kafka在微软的使用
Kafka Summit 2016中有一个微软MS/Bing团队的分享。看了数据给大家分析下。微软有一套服务化的数据管道EventHub,作为云产品售卖。但在Bing、Ads、Office等场景上仍在使用Kafka,在整个公司规模上大概是一半 vs 一半。主要使用Kafka考虑是Kafka与开源流处
5224 0
|
新零售 Oracle 关系型数据库
通过京东技术演进和淘宝技术演进,探察未来技术和架构
通过京东技术演进和淘宝技术演进,探察未来技术和架构 我们从京东和淘宝技术架构演进,可以看出电商在发展过程中的必经之路:Mysql->Oracle->分布式计算和分布式存储->???未来 引用下《京东技术解密》书中的内容: 基于Hadoop,以Mapreduce作为计算引擎的的分布式数据仓库可以说是大数据处理的“标配”,2012年8月,由40台机器搭建的第一版集群上线,相较于Oracle小型机,性能明显提升,让我们第一次体会到分布式的威力。
2289 0