B:

  现在有一种新的2进制表示法,要你求出0~m-1的每个数的表示。

  规则如下:n 是满足 m<=2n 最小数。

       而0~m-1的数只能够用n-1个位和n个位来表示。

       对于n个位表示的数来说不能有n-1个位表示的数前缀。(如果3表示101那么就不能有10去表示前面的数。

       要求要全部数的位数加起来最小, 数从小到大排。

  题解:我们先要求出n。

    如果是m == 2n 来说。我们不会有n-1位来表示数。

    证明:我们有 m/2 个 n-1位数,每一个n-1位数在尾部加上0或者1就可以变成n位的数,

       1个n-1位数可以变成2个,所以m/2个变成m个n位数。所以就没有n-1位的数。

    如果m < 2n 。同样的我们还是有 2n-1 个n-1位的数,因为一个n-1位的数可以变成2个n位的数,我们从后往前把一个n-1位的数变成2个(从后往前满足从小到大),直到凑齐m个数。

  

												

最新文章

  1. node实现watcher的困境
  2. 用Tensorflow让神经网络自动创造音乐
  3. HDU1434(终于用优先队列a了一题。。。了解度+1)
  4. 把DataTable转换为泛型List&lt;T&gt;或是JSON
  5. 最简单的Web服务器
  6. 用for循环打印菱形
  7. HDU 1024 Max Sum Plus Plus --- dp+滚动数组
  8. 从idea到ipo
  9. JavaPersistenceWithHibernate第二版笔记-第五章-Mapping value types-002使用@Embeddable
  10. Python面向对象1
  11. DirectoryExists
  12. 【转】ubuntu打包压缩命令总结
  13. 开机启动tomcat
  14. linux之普通用户与root用户之间切换
  15. 实现winfrom进度条及进度信息提示,winfrom程序假死处理
  16. vs2010打开设计器出现错误
  17. POI读取公式的值
  18. php运行
  19. python int异常 python isdigit
  20. 将 Intent 序列化,像 Uri 一样传递 Intent!!!

热门文章

  1. 会引起全表扫描的几种SQL 以及sql优化 (转)
  2. 学会这些 pycharm 编程小技巧,编程效率提升 10 倍
  3. python接口、抽象类与抽象方法
  4. Jade学习(二)之语法规则上
  5. having函数,case when与order by
  6. java io 文件读写操作
  7. vue2-brace-editor代码编辑器添加自定义代码提示(修改源码)
  8. multipart/form-data提交
  9. PAT Basic 1071 小赌怡情 (15 分)
  10. idea 添加静态注释和live Templates