SSL 1108——【USACO 2.1】海明码(DFS)
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)相关推荐
- 差错控制:海明码、循环冗余校验码
海明码 海明码的编码方法 例题: D B 循环冗余校验码 奇偶校验
- 【计算机网络】数据链路层 : 差错控制 ( 纠错编码 | 海明码 | “海明码“ 原理 | “海明码“ 工作流程 | 确定校验啊位数 | 确定校验码和数据位置 | 求校验码值 | 检错纠错 )★
文章目录 一. "海明码" 工作原理 二. "海明码" 工作流程 三. 确定校验码位数 四. 确定校验码和数据位置 0. 确定校验码位置 1. 引入二进制位 2 ...
- 已知数据信息为 16位,最少应附加( )位校验位,以实现海明码纠错。
已知数据信息为 16位,最少应附加( )位校验位,以实现海明码纠错. A.3 B.4 C.5 D.6 答案:C 答案解析: 根据公式 2的k次方 ≥ n+k+1 , n=16 则 K=5
- SSL 自签证书工具源码
简介: HTTPS/SSL证书自签源码,喜欢就下载吧. 这是一款免费的SSL证书自签工具源码,可随时随地签发SSL证书,运行环境:你的 PHP 必须 >=5.6,且安装了 OpenSSL 扩展, ...
- 海明码编码和校验原理与实现【转载】
海明编码与检验原由 以内存为例, 如果内存所处的电磁环境比较复杂, 或者空间环境下受到带电粒子的打击, 那么可能导致电容的充放电或者触发器的翻转(SRAM). 这样会导致存储信息的改变. 如果不校验, ...
- 易理解的海明码的编码和校验原理【转载】
海明码简单分析(方法1) 海明码(也叫汉明码)具有一位纠错能力.本文以1010110这个二进制数为例解释海明码的编码和校验方法. 编码 确定校验码的位数x 设数据有nnn位,校验码有xxx位.则校验码 ...
- 3.3.1网络原理数据链路层之差错控制(检错编码和纠错编码)->(奇偶校验码、CRC循环冗余码、海明码)(转载)
原文链接:https://blog.csdn.net/weixin_43914604/article/details/104864783 本博客为个人学习.研究或者欣赏用,如有侵权,请与我联系删除,谢 ...
- 计算机网络数据链路层的错误检测与纠正之海明码的生成,解码
2019独角兽企业重金招聘Python工程师标准>>> <!-- lang: java -->/*** made by wangming * * 2013-10-28 p ...
- 纠错编码--海明码(动一发而牵全身)
纠错编码–海明码 海明码:发现双比特,纠正单比特错 工作原理:动一发而牵全身 假设发送4位数据,在它上面加上冗余信息(冗余码,校验码),但是校验码很厉害,不但可以校验自身,同时还可以校验几位 发现有一 ...
- 海明码知识透析--网工必备
海明码的相关运算 这段时间在备考网络工程师,51可帮了大忙,不仅各种知识点都有,还有海量针对性的模拟考题.这不做题的时候发现海明码经常出现在题目中,却次次做错.引起了我的警觉,这恐怕就是热考点和难点了 ...
最新文章
- ssh mysql 警告_ssh 对数据表查询出错。警告: SQL Error: 1064, SQLState: 42000
- Mac中word插入图片保持原来的清晰度
- CF510C Fox And Names——拓扑排序练习
- js中货币格式化方法
- 【Android Studio】分类整理res/Layouts中的布局文件(创建子目录)
- 五猴分桃c语言课程设计,c语言程序设计五猴分桃问题实验报告.doc
- 程序员编程经验_在没有实际编程的情况下成为更好的程序员
- [virtualbox] win10与centos共享目录下,nginx访问问题
- php5.5 安装pdo oci,PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法
- CentOS7.5下KVM虚拟机安装
- CAS(Compare and Swap)理解
- 御剑php字典,Newyujian1.5 御剑源码 主要用于扫描网站目录 - 下载 - 搜珍网
- DevOps案例研究|中华有为-解构华为软开云DevOps实践
- php larval 数据库when,Laravel DB类操作数据库
- IKEv2子网之间秘钥重协商
- PowerMill2019基础到三四五轴编程视频教程全
- Java如何找出数组中前k个高频元素
- Essential C++读书笔记
- 剑指offter(1/31)栈与队列
- 博途v14电脑要求_TIA博途V14安装的系统要求
热门文章
- 《scikit-learn》《Kaggle》泰坦尼克数据集的试验
- leetcode - 1039. 多边形三角剖分的最低得分
- java网络爬虫连接超时解决[实战程序]
- 扩展指令集--指令参考说明
- Ubuntu在启动器中添加自定义程序快捷方式
- phpfpm怎么连接mysql_php-fpm连不上mysql的问题?
- Docker学习四:Docker 网络
- Spring集成单元测试
- 蔡高厅老师 - 高等数学阅读笔记 - 15 广义积分和伽马函数 定积分的应用(面积和体积) -(67、68、70、71)
- 【架构师】【数据库基础】【笔记 01】快速了解数据库系统的重要概念01