HAMMING CODES 海明码

时间:2014-10-27 12:44:17   收藏:0   阅读:146

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; 
  
} 
评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!