P8019 [ONTAK2015] OR-XOR
一道很好的思维题
首先因为区间操作不太好做,所以我们可以先对所有数做一个前缀异或和,这样原问题就变成了从n个数中选m个数,使得
然后这里有一个很关键的想法,我们可以发现or操作只要某一位有1,则答案一定为1,所以我们虽然把
如果此时他对某一位产生了1的贡献,则再or上一次答案是不变的;而如果没有产生贡献,再or一次也不会有贡献
因此,我们就把原问题变成了从
所以我们考虑求出前缀异或和后按位贪心,我们可以发现如果对于某一位他满足不和高位冲突的0的数量<m,则这一位是不可能产生1的贡献的。
而如果0的数量>=m,也不一定有答案,因为不要忘记第n个数必须被选,所以要保证当前这一位
我们可以记录数组
复杂度
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?