标签:alt 长度 for 技术 它的 关于 mamicode 思想 增加
void add(int no,int num){
for(int i=no;i<=n;i+=i&-i)
c[i]+=num;
}
max[12]=max(a[12],c[12-1],c[12-2]) | ||||
c[12] | a[12] | c[12-1] | c[12-2] | lowbit | 4 | 1(元素本身) | 1 | 2 |
void update(int no,int num){
c[no]=a[no]=num;
for(int i=1;i<(no&-no);i<<=1)
c[no]=max(c[no],c[no-i]);
}
倍增:sum[5]=c[4]+c[5];
int ask(int no){
int out=0;
for(int i=no;i;i-=i&-i)
out+=c[i];
return out;
}
3=(11)2
11=(1011)2
max(3,11)=max(a[11],c[10],a[8],c[7],c[5],a[4],c[3]) | |||||||
a[11] | a[10] | a[8] | a[7] | a[5] | a[4] | a[3] | |
lowbit | 1 | 2 | / | 1 | 2 | / | 1 |
之后 | 1010 | 1000 | 111 | 110 | 100 | 11 | |
之前 | 1011 | 1010 | 1000 | 111 | 110 | 100 | 11 |
int ask(int l,int r){
int ans=0;
while(r>=l)
{
ans=max(ans,a[r]);
r--;
for(;r-(r&-r)>=l;r-=r&-r)
ans=max(ans,h[r]);
}
return ans;
}
标签:alt 长度 for 技术 它的 关于 mamicode 思想 增加
原文地址:https://www.cnblogs.com/intmian/p/BIT.html