Description

  给出 N,B 和 D:找出 N 个编码(1 <= N <= 64),每个编码有 B 位(1 <= B <= 8),使得两两编码之间至少有 D 个单位的“海明距离”(1 <= D <= 7)。“海明距离”是指对于两个编码,他们的二进制表示法中的不同二进制位的数目。看下面的两个编码 0x554 和 0x234 之间的区别(0x554 表示一个十六进制数,每个位上分别是 5,5,4):
    0x554 = 0101 0101 0100
    0x234 = 0010 0011 0100
  因为有五个位不同,所以“海明距离”是 5。

Input

一行,包括 N, B, D。

Output

  N 个编码(用十进制表示),要排序,十个一行。如果有多解,你的程序要输出这样的解:假如把它化为 2^B 进制的数,它的值要最小。

Sample Input

16 7 3
Sample Output

0 7 25 30 42 45 51 52 75 76
82 85 97 102 120 127


这题用dfs
每次暴力枚举即可


代码如下:

varn,b,d,i,j,k:longint;bz:boolean;s:string;a:array[0..64] of string;sum:array[0..64] of longint;
function jz(n:longint):string;
varst:array[0..8] of longint;i:longint;s:string;
begini:=0;s:='';while n<>0 dobegininc(i);st[i]:=n mod 2;n:=n div 2;end;for j:=i downto 1 dos:=s+chr(st[j]+48);if length(s)<b thenfor j:=1 to b-length(s) dos:='0'+s;exit(s);
end;
function pd(s,s1:string):boolean;
vari,ans:longint;
beginans:=0;for i:=1 to length(s) doif s[i]<>s1[i] then inc(ans);if ans>=d then exit(true) else exit(false);
end;
beginreadln(n,b,d);k:=1;i:=0;bz:=true;for j:=1 to b do a[1]:=a[1]+'0';sum[1]:=0;while k<>n dobegininc(i);bz:=true;s:=jz(i);for j:=k downto 1 doif not pd(a[j],s) thenbeginbz:=false;break;end;if bz thenbegininc(k);a[k]:=s;sum[k]:=i;end;end;for i:=1 to n dobeginwrite(sum[i],' ');if i mod 10=0 then writeln;end;
end.

转载于:https://www.cnblogs.com/Comfortable/p/8412366.html

SSL 1108——【USACO 2.1】海明码(DFS)相关推荐

  1. 差错控制:海明码、循环冗余校验码

    海明码 海明码的编码方法 例题: D B 循环冗余校验码 奇偶校验

  2. 【计算机网络】数据链路层 : 差错控制 ( 纠错编码 | 海明码 | “海明码“ 原理 | “海明码“ 工作流程 | 确定校验啊位数 | 确定校验码和数据位置 | 求校验码值 | 检错纠错 )★

    文章目录 一. "海明码" 工作原理 二. "海明码" 工作流程 三. 确定校验码位数 四. 确定校验码和数据位置 0. 确定校验码位置 1. 引入二进制位 2 ...

  3. 已知数据信息为 16位,最少应附加( )位校验位,以实现海明码纠错。

    已知数据信息为 16位,最少应附加( )位校验位,以实现海明码纠错. A.3 B.4 C.5 D.6 答案:C 答案解析: 根据公式 2的k次方 ≥ n+k+1 , n=16 则 K=5

  4. SSL 自签证书工具源码

    简介: HTTPS/SSL证书自签源码,喜欢就下载吧. 这是一款免费的SSL证书自签工具源码,可随时随地签发SSL证书,运行环境:你的 PHP 必须 >=5.6,且安装了 OpenSSL 扩展, ...

  5. 海明码编码和校验原理与实现【转载】

    海明编码与检验原由 以内存为例, 如果内存所处的电磁环境比较复杂, 或者空间环境下受到带电粒子的打击, 那么可能导致电容的充放电或者触发器的翻转(SRAM). 这样会导致存储信息的改变. 如果不校验, ...

  6. 易理解的海明码的编码和校验原理【转载】

    海明码简单分析(方法1) 海明码(也叫汉明码)具有一位纠错能力.本文以1010110这个二进制数为例解释海明码的编码和校验方法. 编码 确定校验码的位数x 设数据有nnn位,校验码有xxx位.则校验码 ...

  7. 3.3.1网络原理数据链路层之差错控制(检错编码和纠错编码)->(奇偶校验码、CRC循环冗余码、海明码)(转载)

    原文链接:https://blog.csdn.net/weixin_43914604/article/details/104864783 本博客为个人学习.研究或者欣赏用,如有侵权,请与我联系删除,谢 ...

  8. 计算机网络数据链路层的错误检测与纠正之海明码的生成,解码

    2019独角兽企业重金招聘Python工程师标准>>> <!-- lang: java -->/*** made by wangming * * 2013-10-28 p ...

  9. 纠错编码--海明码(动一发而牵全身)

    纠错编码–海明码 海明码:发现双比特,纠正单比特错 工作原理:动一发而牵全身 假设发送4位数据,在它上面加上冗余信息(冗余码,校验码),但是校验码很厉害,不但可以校验自身,同时还可以校验几位 发现有一 ...

  10. 海明码知识透析--网工必备

    海明码的相关运算 这段时间在备考网络工程师,51可帮了大忙,不仅各种知识点都有,还有海量针对性的模拟考题.这不做题的时候发现海明码经常出现在题目中,却次次做错.引起了我的警觉,这恐怕就是热考点和难点了 ...

最新文章

  1. ssh mysql 警告_ssh 对数据表查询出错。警告: SQL Error: 1064, SQLState: 42000
  2. Mac中word插入图片保持原来的清晰度
  3. CF510C Fox And Names——拓扑排序练习
  4. js中货币格式化方法
  5. 【Android Studio】分类整理res/Layouts中的布局文件(创建子目录)
  6. 五猴分桃c语言课程设计,c语言程序设计五猴分桃问题实验报告.doc
  7. 程序员编程经验_在没有实际编程的情况下成为更好的程序员
  8. [virtualbox] win10与centos共享目录下,nginx访问问题
  9. php5.5 安装pdo oci,PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法
  10. CentOS7.5下KVM虚拟机安装
  11. CAS(Compare and Swap)理解
  12. 御剑php字典,Newyujian1.5 御剑源码 主要用于扫描网站目录 - 下载 - 搜珍网
  13. DevOps案例研究|中华有为-解构华为软开云DevOps实践
  14. php larval 数据库when,Laravel DB类操作数据库
  15. IKEv2子网之间秘钥重协商
  16. PowerMill2019基础到三四五轴编程视频教程全
  17. Java如何找出数组中前k个高频元素
  18. Essential C++读书笔记
  19. 剑指offter(1/31)栈与队列
  20. 博途v14电脑要求_TIA博途V14安装的系统要求

热门文章

  1. 《scikit-learn》《Kaggle》泰坦尼克数据集的试验
  2. leetcode - 1039. 多边形三角剖分的最低得分
  3. java网络爬虫连接超时解决[实战程序]
  4. 扩展指令集--指令参考说明
  5. Ubuntu在启动器中添加自定义程序快捷方式
  6. phpfpm怎么连接mysql_php-fpm连不上mysql的问题?
  7. Docker学习四:Docker 网络
  8. Spring集成单元测试
  9. 蔡高厅老师 - 高等数学阅读笔记 - 15 广义积分和伽马函数 定积分的应用(面积和体积) -(67、68、70、71)
  10. 【架构师】【数据库基础】【笔记 01】快速了解数据库系统的重要概念01