HAMMING CODES 海明码
2018-06-19 14:06 更新
http://acm.sdibt.edu.cn/JudgeOnline/problem.php?id=2324
题目大意:(如题)
输入输出:(如题)
解题思路:
简单搜索。按递增顺序搜索要求的n个数,然后跟前面的数判断距离是否大于d,找到的一组解即为最小的。
注意:
1.0在每组数据里面都出现。
2.b给出了搜索的最大值:2^b-1。
3.计算两个数a,b的距离,只要计算a^b的二进制形式中1的个数。
核心代码:
int dist(int x,int y) { int cnt,tmp; cnt=0; tmp=x^y; while(tmp>0) { cnt++; tmp-=(tmp&(-tmp)); } return cnt; }
以上内容是否对您有帮助:
更多建议: