zoukankan      html  css  js  c++  java
  • ACM ICPC 2011-2012 Northeastern European Regional Contest(NEERC)B Binary Encoding

    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个数。

      

    View Code
  • 相关阅读:
    第一阶段冲刺 第三天
    第一阶段冲刺 第二天
    第一阶段冲刺 第一天
    第十周进度表
    第九周进度表
    NABCD需求分析
    典型用户和场景分析
    第一个冲刺周期-第一天
    第十周进度表
    团队电梯演讲视频链接
  • 原文地址:https://www.cnblogs.com/denghaiquan/p/7436244.html
Copyright © 2011-2022 走看看