HDU 4712 Hamming Distance(随机算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4712
题目大意:任意两个数按位异或后二进制中含1的个数被称为海明距离,给定n个数,求出任意其中两个最小的海明数,输入是16进制。
分析:用随机数来模拟,加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(随机算法)的更多相关文章
- hdu 4712 Hamming Distance ( 随机算法混过了 )
Hamming Distance Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others) ...
- HDU 4712 Hamming Distance(随机算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4712 解题报告:输入n个数,用十六进制的方式输入的,任意选择其中的两个数进行异或,求异或后的数用二进制 ...
- hdu 4712 Hamming Distance 随机
Hamming Distance Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others) ...
- hdu 4712 Hamming Distance(随机函数暴力)
http://acm.hdu.edu.cn/showproblem.php?pid=4712 Hamming Distance Time Limit: 6000/3000 MS (Java/Other ...
- HDU 4217 Hamming Distance 随机化水过去
Hamming Distance Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others) ...
- Hamming Distance(随机算法)
http://acm.hdu.edu.cn/showproblem.php?pid=4712 题意:计算任意两个十六进制的数异或后1的最少个数. 思路:用随机数随机产生两个数作为下标,记录这两个数异或 ...
- hdu 4712 Hamming Distance(随机数法)
d.汉明距离是使用在数据传输差错控制编码里面的,汉明距离是一个概念,它表示两个(相同长度)字对应位不同的数量, 我们以d(x,y)表示两个字x,y之间的汉明距离.对两个字符串进行异或运算,并统计结果为 ...
- hdu 4712 Hamming Distance bfs
我的做法,多次宽搜,因为后面的搜索扩展的节点会比较少,所以复杂度还是不需要太悲观的,然后加上一开始对答案的估计,用估计值来剪枝,就可以ac了. #include <iostream> #i ...
- 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 ...
随机推荐
- virtualenv下配置nginx uwsgi Django
1.安装virtualenv,创建虚拟环境django15 sudo apt-get install virtualenv virtualenv env source bin/active pip i ...
- LINUX系统怎么关闭防火墙?
所谓防火墙指的是一个由软件和硬件设备组合而成.在内部网和外部网之间.专用网与公共网之间的界面上构造的保护屏障.是一种获取安全性方法的形象说法,它是一种计算机硬件和软件的结合,使Internet与Int ...
- Storm系列(三)Topology提交过程
提交示例代码: 1 ); // 设置一个ack线程 9 conf.setDebug(true); // 设置打印所有发送的消息及系统消息 10 StormSubmitter.su ...
- POJ1050:To the max
poj1050:http://poj.org/problem?id=1050 * maximum-subarray 问题的升级版本~ 本题同样是采用DP思想来做,同时有个小技巧处理:就是把二维数组看做 ...
- Replacing JNI Crashes by Exceptions on Android
http://blog.httrack.com/blog/2013/08/23/catching-posix-signals-on-android/ To Report Or Not To Repor ...
- clock_t与time_t的区别及联系
clock_t <ctime> Clock type Type capable of representing clock tick counts and support arithmet ...
- A Tour of Go Range
The range form of the for loop iterates over a slice or map. package main import "fmt" , , ...
- Duff and Weight Lifting - 587A
题目大意:某个人训练举重,他每次可以举起来2^wi的重量,不过这个人比较懒所以他想尽量减少训练的次数,如果所有的训练重量2^a1 +2^a2+....2^ak = 2^x,那么这些重量可以一次性训练( ...
- JAVA Serialization 序列化
最近在做Android 项目时用到了WebView,可悲的是,在html上有无数用户的操作,而这些操作被JS返回给了Android的内存中,当深层的Activity开启时,之前的Activity很可能 ...
- Sublime Text3使用及常用插件
1.安装packages组件: 参考一: https://sublime.wbond.net/installation 参考二: http://blog.csdn.net/superskk6/arti ...