首页 > 其他分享 >快速求popcount的和

快速求popcount的和

时间:2023-03-11 19:36:18浏览次数:41  
标签:right text sum times popcount 快速 left

前置知识

\(popcount(n)\) 表示将 \(n\) 转为二进制后的数中 \(1\) 的个数。

结论

\[\sum_{i=1}^{n} \text{ popcount}(i)=\sum_{i=1}^{\left \lceil \log_{2}{n} \right \rceil-1 } \left [ (n>>(i-1))\text{&}1==1 \right ] \times (i\times 2^{i-1}+2^{i}\times \text {popcount}(n>>i) \]

参考自:https://kaiserwilheim.github.io/OI/fast-popcnt-sum/

标签:right,text,sum,times,popcount,快速,left
From: https://www.cnblogs.com/Multitree/p/17206752.html

相关文章