码迷,mamicode.com
首页 > 其他好文 > 详细

HAMMING CODES 海明码

时间:2014-10-27 12:44:17      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:acm   c++   算法   解题报告   

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; 
  
} 

HAMMING CODES 海明码

标签:acm   c++   算法   解题报告   

原文地址:http://blog.csdn.net/mmoaay/article/details/40505841

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!