2 条题解

  • 0
    @ 2025-12-5 9:33:30

    VOID_DC 的题解中提到了这句话:

    容易发现 010 和 00010 的十进制值相同,而我们需要区分,可以直接对每个长度的子串独立开桶。

    但显然不用这么麻烦。

    我们把二进制换到三进制。

    这一位字符 这一位对应的值
    NULL 00(但我们不用,这一位并不会出现)
    0 11
    1 22

    这么赋值有什么好处呢?

    1. 区分了像 00101010 这样的子串。

    2. 按照子串的十进制值排序后得到的子串序列是按照字典序的。这样只用写双关键字排序,而非三关键字。

    3. 好编码,解码。

    4. 长度在一个区间的子串,其十进制值也在一个区间。

    信息

    ID
    602
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    (无)
    递交数
    27
    已通过
    7
    上传者