『算法-ACM竞赛-算法-lowbit』算法竞赛进阶指南-lowbit运算,找到二进制下所有是1的位
『算法-ACM 竞赛-算法-lowbit』算法竞赛进阶指南-lowbit 运算,找到二进制下所有是 1 的位
写在前面:我们主要还是分享算法的模板,而不是去刨析算法的原理!
主要思想是,对于非负整数 n,输出 n 最低位的 1 所在位,并不断把 n 赋值成 n-(n&-n),直至 n=0。
为了提高效率,我们使用 Hash 代替取 log,并且利用一个数学技巧:对于任意在[0,35]中的 k,2^k%37 互不相等,且恰好取遍整数 1~36。
1 |
|
其他两种实现:
1 |
|
『算法-ACM竞赛-算法-lowbit』算法竞赛进阶指南-lowbit运算,找到二进制下所有是1的位
https://chiamzhang.github.io/2024/06/29/『算法-ACM竞赛-算法-lowbit』算法竞赛进阶指南-lowbit运算,找到二进制下所有是1的位/