考虑N(x)操作为:从低位到高位找到第一个连续1段,然后最高位那个1往左移动一位,其余的1移动至最低位即可。
例如:312 = 100111000
N(312) = 10100011
特别的,N(1) = 2 (10), 这种二进制需要进位的情况,我们在操作二进制字符串之前需要对最高位补全一个前导零。
在数字世界中,每一个正整数 x 都有一个“码重” ρ(x),表示 x 在二进制下 1 的个数。例如 ρ(7)=3,ρ(8)=1。
对于正整数 x,定义它的“同码后继” N(x) 为满足 ρ(y)=ρ(x) 且 y>x 的最小正整数 y。例如 N(1)=2,N(2)=4,N(3)=5。
现在给定 n 个正整数 a1,a2,…,an。请你从中选出一些不同的数字(相同的数字只计一次),并按某种顺序排成一个序列 b1,b2,…,bm,满足:
请你计算出能得到的最长序列的长度。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册