专栏文章

P13565 「CZOI-R5」按位或 题解

P13565题解参与者 3已保存评论 2

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
2 条
当前快照
1 份
快照标识符
@miofzi3z
此快照首次捕获于
2025/12/02 18:35
3 个月前
此快照最后确认于
2025/12/02 18:35
3 个月前
查看原文

出题人题解的补充解释:

注:本文章内容由少年当立凌云志团队成员共同讨论得出。

问题:

为什么题解代码中的 cntcnt 可以每次初始化为 00

答:

  1. 无法抵消的高位权上的 11 都维护进了 ansans
  2. 当考虑到 22jj 次方时,实际是尝试将 ansans22jj 次方上保持 00 (贪心思想)。
  3. 程序实际上每次重新计算,在保持 ansans 不变大的情况下,能否将当前位置保持 00 。如果 cntcnt 超过 mm,则说明无法实现(即当前位不可能为 00 或会影响原本维护好的 ansans)。如果 cntcnt 不超过 mm,则说明可以再保持维护好的 ansans 的情况下,使当前位置为 00
  4. 按上述方法操作,实际上在计算“低位权”时的 cntcnt 值包含了以前计算“高位权”时的 cntcnt 值。
  5. 这样做的目的是,在保证时间复杂度合格的同时,大大简化了代码编写复杂度,虽然也提高了代码理解门槛,但仍然非常值得我们区学习。

总结:

非常喜欢这个题目,不仅训练了位运算,还让我学到了一种新的代码思路,读懂代码时真的很震撼,也可能是我见识太少

宁宁世界第一可爱!

评论

2 条评论,欢迎与作者交流。

正在加载评论...