HDU 4712 Hamming Distance(随机算法)
2024-08-25 12:53:59
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4712
解题报告:输入n个数,用十六进制的方式输入的,任意选择其中的两个数进行异或,求异或后的数用二进制表示后1的个数最小的是多少?(n<=100000)
这题看了解题报告,大家都说用随机算法,试过了,随机100000次就过了,50000次都不行,但还是不懂这样怎么可以,唯一的解释就是这个值域也就是结果一共只有21个,
得出正确的结果的可能性很大,但是并不能100%保证结果是对的。无语第一次碰见这种算法。
#include<cstdio>
#include<time.h>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn = <<; int num1[maxn+];
int que[];
void dabiao()
{
for(int i = ;i <= maxn;++i)
{
int t = ;
for(int j = ;j < ;++j)
if(i & ( << j)) t++;
num1[i] = t;
}
}
int main()
{
dabiao();
int T,n;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
for(int i = ;i < n;++i)
scanf("%x",&que[i]);
int ans = 0x7fffffff,suiji = ;
srand( (unsigned)time( NULL ) ); //不加种子就过不了
while(suiji--)
{
int r1 = rand() % n;
int r2 = rand() % n;
if(r1 != r2)
ans = min(ans,num1[que[r1]^que[r2]]);
}
printf("%d\n",ans);
}
return ;
}
最新文章
- Html5 希尔排序演示
- 学习zepto.js(对象方法)[2]
- XcodeiOS模拟器安装相关
- notepad++ 配置Python 调试环境 实用版
- .NET Framework中重点类型的继承关系
- 一篇学习HTTP状态码的神文:我与依依的橙色岁月
- .net 连接数据库
- pH 值与曝气对硝化细菌硝化作用的影响
- JS面试题及答案总结
- 集群管理 secondaryNameNode和NameNode(转)
- iOS NSString中字符串的删除,替换
- 什么是工程师文化?各位工程师是为什么活的?作为一个IT或互联网公司为什么要工程师文化?
- VC图形绘制双缓存的代码复用性讨论
- nodejs nodemailer中间件
- SQL语句流程函数
- 用node编写自己的cli工具
- 一个简洁的PHP可逆加密函数(分享)
- IntelliJ IDEA(九) :酷炫插件系列
- Codeforces 741 D - Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths
- GitHub &;&; GitLab
热门文章
- Java并发编程(详解wait(), notify(),sleep())
- 浅介MVC与Backbone
- 《Linux内核设计与实现》第四周读书笔记——第五章
- Linux命令(十五) 打包或解压文件 tar
- Docker 将一堆镜像 导成一个文件
- 新版 Chrome Ajax 跨域调试
- idea中 mybatis的debug文件需要放在src的目录下 不能加多余的路径
- 获取androdmanifest里面的meta-data
- XStream--java对象与xml形式文件相互转换
- POJ 2251 Dungeon Master /UVA 532 Dungeon Master / ZOJ 1940 Dungeon Master(广度优先搜索)