从CF1878E学习前缀和维护二进制拆位分析思想
这题我想到了个大概,按位与的话结果肯定是递减的,而且要从二进制每一位下手,但是思路只停留在暴力对整个数操作。
当然,利用这个性质,肯定要二分。
1|0拆位思想
比如要计算
我们知道最后结果肯定是留下都有
但每次都进行按位与肯定是超时的,能不能把按位与和前缀和两个思想结合应用呢?
对于上述的式子,我们可以拆位分析,具体地:
- 对于三个按位与的七位二进制数,预处理出第
位在前 数中的数码 的前缀和。 - 那么显然判断结果时,只要按位查询前缀和,等于三的就是
,否则是 。
推广到
- 维护一个前缀和数组
表示前 个数,第 个数码的前缀和。- 如果第
个数的第 个数码是 ,那么 - 如果第
个数的第 个数码是 ,那么
- 如果第
- 查询这个数的按位与/乃至按位或这种跟
个数很相关的,就可以利用预处理出来的前缀和 查询。 - 对于本题,显然前缀和等于数的间隔的位置的数码是
,把这些数码再用 加入总和,最后判断是否符合答案。
2|0代码实现
__EOF__

本文作者:Kdlyh
本文链接:https://www.cnblogs.com/kdlyh/p/17980244.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/kdlyh/p/17980244.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
分类:
知识总结 / TRICK
, 做题报告(2023+)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下