满足条件的数恰好能写成 2i+2j+2k2^i+2^j+2^k2i+2j+2k,其中三个位互不相同。
由于 N≤1018<260N\le10^{18}<2^{60}N≤1018<260,枚举 0≤k<j<i<600\le k<j<i<600≤k<j<i<60 只会得到 (603)=34220\binom{60}{3}=34220(360)=34220 个候选。
预生成全部候选并排序。每次询问对 NNN 做 upper_bound,其前一个元素就是最大合法值;若不存在前一个元素则输出 −1-1−1。
upper_bound
预处理复杂度为 O(603log603)O(60^3\log60^3)O(603log603),每次查询为 O(log603)O(\log60^3)O(log603),空间为 O(603)O(60^3)O(603)。
注册一个 Hydro 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。
使用您的 Hydro 通用账户