思路
容易发现每一秒每个格子的或区间会左右各延伸一格(最多到 0),例如 3 号点在 5 秒后变成了 0∣1∣2∣3∣4∣5∣6∣7∣8,n 号节点在 m 秒后会变成 max(n−m,0)∼n+m 的按位或和。
至于 l∼r 的按位或和怎么求,那我们不放先假设 l=1011001,r=1011100(此处均表示二进制,下同),则 l∼r 一定包含 1011011,此时只要拿这个数和 r 做一次或就可得到 1011111。同理,只要知道 l=x0a,r=x1b(a 和 b 位数相同),则得数就是 x0111…∣r。
代码奉上。