CF243A (拆位思想)

难度 1+

想了还是挺久的。首先对于这种区间的问题,比较常见的套路就是枚举右端点li通过数据结构算出贡献。em,因为是有关二进制的问题,考虑拆位,如果ai或上前面的要变成新的数,那么必有一位0变成了1,所以想到开21颗平衡树找下前驱后继就可以了。

上面足以通过,但我们发现找前驱是可以通过记录一个b[100000][25],记录前驱,从前往后就可以了,从而优化到了nlogn

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