题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4712

题目大意:任意两个数按位异或后二进制中含1的个数被称为海明距离,给定n个数,求出任意其中两个最小的海明数,输入是16进制。

Sample Input
2
2
12345
54321
4
12345
6789A
BCDEF
0137F
 
Sample Output
6
7

分析:用随机数来模拟,加srand()函数,放置产生伪随机数。代码有2个。

代码1:

 # include<iostream>
# include<cstdio>
# include<cstring>
# include<ctime>
# include<cstdlib>
# define INF 0x3f3f3f3f using namespace std; int cmp[][];
char data[][]; int solve(int q,int w)
{
int a,b,ret=;
for(int i=; i<; i++)
{
char x = data[q][i];
char y = data[w][i];
if(x>='' && x<='')
a = x-'';
else
a = x-'A' + ;
if(y>='' && y<='')
b = y-'';
else
b = y-'A' + ;
ret += cmp[a][b];
}
return ret;
}
int main()
{
int i,j;
for(i=; i<; i++)
{
for(j=; j<; j++)
{
int ans=;
int tmp = i^j;
for(int k=; k<; k++)
if((<<k) & tmp)
ans ++;
cmp[i][j] = ans;
}
} int T,n;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
for(i=; i<=n; i++)
scanf("%s",data[i]);
int ans = INF;
srand((unsigned)time(NULL));
for(i=; i<=; i++)
{
int a = rand()%n + ;
int b = rand()%n + ;
if(a==b)
b= b%n+;
int tmp = solve(a,b);
if(tmp < ans)
ans = tmp;
}
printf("%d\n",ans);
}
return ;
}

代码2:

 # include<iostream>
# include<cstdio>
# include<cstring>
# include<ctime>
# include<cstdlib>
# define INF 0x3f3f3f3f using namespace std; int data[]; int get_one(int x)
{
int ret = ;
while(x)
{
ret ++;
x = x&(x-);
}
return ret;
}
int main()
{
srand((unsigned)time(NULL));
int T,n,i;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
for(i=; i<n; i++)
scanf("%x",&data[i]);
int ans = INF;
for(i=; i>=; i--) //好奇怪,这里从前往后循环返回WA
{
int a = rand()%n ;
int b = rand()%n ;
if(a != b)
ans = min(ans,get_one(data[a]^data[b]));
}
printf("%d\n",ans);
}
return ;
}

HDU 4712 Hamming Distance(随机算法)的更多相关文章

  1. hdu 4712 Hamming Distance ( 随机算法混过了 )

    Hamming Distance Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) ...

  2. HDU 4712 Hamming Distance(随机算法)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4712 解题报告:输入n个数,用十六进制的方式输入的,任意选择其中的两个数进行异或,求异或后的数用二进制 ...

  3. hdu 4712 Hamming Distance 随机

    Hamming Distance Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) ...

  4. hdu 4712 Hamming Distance(随机函数暴力)

    http://acm.hdu.edu.cn/showproblem.php?pid=4712 Hamming Distance Time Limit: 6000/3000 MS (Java/Other ...

  5. HDU 4217 Hamming Distance 随机化水过去

    Hamming Distance Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) ...

  6. Hamming Distance(随机算法)

    http://acm.hdu.edu.cn/showproblem.php?pid=4712 题意:计算任意两个十六进制的数异或后1的最少个数. 思路:用随机数随机产生两个数作为下标,记录这两个数异或 ...

  7. hdu 4712 Hamming Distance(随机数法)

    d.汉明距离是使用在数据传输差错控制编码里面的,汉明距离是一个概念,它表示两个(相同长度)字对应位不同的数量, 我们以d(x,y)表示两个字x,y之间的汉明距离.对两个字符串进行异或运算,并统计结果为 ...

  8. hdu 4712 Hamming Distance bfs

    我的做法,多次宽搜,因为后面的搜索扩展的节点会比较少,所以复杂度还是不需要太悲观的,然后加上一开始对答案的估计,用估计值来剪枝,就可以ac了. #include <iostream> #i ...

  9. hduoj 4712 Hamming Distance 2013 ACM/ICPC Asia Regional Online —— Warmup

    http://acm.hdu.edu.cn/showproblem.php?pid=4712 Hamming Distance Time Limit: 6000/3000 MS (Java/Other ...

随机推荐

  1. 使用Windows Azure创建Linux系统虚拟机-上

    创建虚拟机来运行Linux 当您在Azure管理门户中使用映像图库时,创建运行Linux的虚拟机很容易.本指南告诉您如何做到这一点,假设你没有使用过Azure. 注意: 即使你不需要使用过Azure虚 ...

  2. hdu 3549 Flow Problem (最大流)

    裸最大流,做模板用 m条边,n个点,求最大流 #include <iostream> #include <cstdio> #include <cstring> #i ...

  3. 问题-[Delphi]MainFrame.pas(4340): E2036 Variable required

    问题现象:写了一个TObjectList的Sort方法,但是写成ObjectList.Sort(@SortBridgeEDOReportQtys); 再F9时提示“E2036 Variable req ...

  4. 动态加载JS文件,并根据JS文件的加载状态来执行自己的回调函数

    动态加载JS文件,并根据JS文件的加载状态来执行自己的回调函数, 在很多场景下,我们需要在动态加载JS文件的时候,根据加载的状态来进行后续的操作,需要在JS加载成功后,执行另一方法,这个方法是依托在加 ...

  5. oracle11 客户端安装及PLSQL和TOAD中文乱码

    oracle11 客户端安装及PLSQL和TOAD中文乱码 1.从Oracle官方下载“Instant Client Package”的软件,较好的实现了Oracle客户端绿化的解决方案. 下载地址为 ...

  6. lucene创建索引简单示例

    利用空闲时间写了一个使用lucene创建索引简单示例, 1.使用maven创建的项目 2.需要用到的jar如下: 废话不多说,直接贴代码如下: 1.创建索引的类(HelloLucene): packa ...

  7. [ATL/WTL]_[0基础]_[CBitmap复制图片-截取图片-平铺图片]

    场景: 1.当你须要截取图片部分区域作为某个控件的背景. 2.须要平铺图片到一个大区域让他自己主动放大时. 3.或者须要合并图片时. 代码: CDC sdc; CDC ddc; sdc.CreateC ...

  8. 在Apache Tomcat 7设置redis作为session store

    在Apache Tomcat 7设置redis作为session store  //输出tomcat控制台日志 root@ubuntu:~# cd /usr/tomcat/apache-tomcat- ...

  9. [Whole Web] [Node.js, PM2] Controlling runaway apps using pm2

    shows how to enable features in your pm2 config file that allow you to prevent runaway apps from bri ...

  10. Java为什么会超时

     java程序,最终是转成c运行的,我们写的程序会转成c代码,并且由底层的c程序调用,可以理解成我们程序最后变成被调用的c函数  底层的C程序是java虚拟机,由它读取我们的.class文件,翻译成c ...