CF1981B 题解

思路

容易发现每一秒每个格子的或区间会左右各延伸一格(最多到 00),例如 33 号点在 55 秒后变成了 0123456780|1|2|3|4|5|6|7|8nn 号节点在 mm 秒后会变成 max(nm,0)n+m\max(n-m,0)\sim n+m 的按位或和。

至于 lrl\sim r 的按位或和怎么求,那我们不放先假设 l=1011001,r=1011100l=1011001,r=1011100(此处均表示二进制,下同),则 lrl\sim r 一定包含 10110111011011,此时只要拿这个数和 rr 做一次或就可得到 10111111011111。同理,只要知道 l=x0a,r=x1bl=x0a,r=x1baabb 位数相同),则得数就是 x0111rx0111\dots|r

代码奉上

posted @   sz_jinzikai  阅读(4)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示