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
  • 相关阅读:
    dup和dup2
    cassandra nodetools
    python 之mechanize
    IDEA使用GsonFormat
    游标应用
    SQL 2005 with(nolock)详解
    SET NOCOUNT ON
    异常处理机制(Begin try Begin Catch)
    FILLFACTOR 作用 sql
    触发器语法
  • 原文地址:https://www.cnblogs.com/denghaiquan/p/7436244.html
Copyright © 2011-2022 走看看