1 条题解

  • 0
    @ 2026-9-9 9:14:34

    题解

    思路

    满足条件的数恰好能写成 2i+2j+2k2^i+2^j+2^k,其中三个位互不相同。

    做法

    由于 N≤1018<260N\le10^{18}<2^{60},枚举 0≤k<j<i<600\le k<j<i<60 只会得到 (603)=34220\binom{60}{3}=34220 个候选。

    预生成全部候选并排序。每次询问对 NN 做 upper_bound,其前一个元素就是最大合法值;若不存在前一个元素则输出 −1-1。

    复杂度

    预处理复杂度为 O(603log⁡603)O(60^3\log60^3),每次查询为 O(log⁡603)O(\log60^3),空间为 O(603)O(60^3)。

    • 1

    信息

    ID
    1619
    时间
    2000ms
    内存
    1024MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者