#include <iostream>
#include <algorithm>
#include <cstdio>
#define ll long long int
using namespace std;
ll c[1000000];
ll lowbit(ll x)
{
return x&(-x); //在二进制下从右开始求第一个为1的值;
//例:6: lowbit(110)=010=2;
} //例:7: lowbit(111)=001=1;
void add(ll x,ll y,ll n) //单节点更新;
{
for(ll i=x;i<=n;i+=lowbit(i))
c[i]+=y;
}
ll query(ll x) //搜索区间和;
{
ll ans=0;
for(ll i=x;i>=1;i-=lowbit(i)
树状数组模板(区间和与单点更新和区间最值)
最新推荐文章于 2024-07-08 19:55:37 发布
本文介绍了如何利用树状数组进行区间和以及区间最大值的高效计算,包括详细的过程和示例,适合学习数据结构与算法的读者参考。
摘要由CSDN通过智能技术生成