倍增O求区间&值之和

Posted adelalove

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了倍增O求区间&值之和相关的知识,希望对你有一定的参考价值。

1 for(ll i=1;i<=n;++i) f[i][0]=a[i];
2   for(ll j=1;(1<<j)<=n;++j)
3    for(ll i=1;(i+(1<<j)-1)<=n;i++)
4     f[i][j]=f[i][j-1]&f[i+(1<<(j-1))][j-1];
5 ll qu(ll l,ll r) //&
6 {
7     ll k=log2(r-l+1);
8     return f[l][k]&f[r-(1<<k)+1][k];
9 }

插一嘴:异或和满足前缀和性质,也可以O(1)求

以上是关于倍增O求区间&值之和的主要内容,如果未能解决你的问题,请参考以下文章

ST算法(倍增)(用于解决RMQ)

倍增思想

java 算法 求 区间 之间的间断值之和

做题POI2011R1 - Plot——最小圆覆盖&倍增

<算法笔记01;ST表

2021.7.13提高B组模拟2T2 JIH的玩偶(倍增)