#include<iostream>
using namespace std;
int a[16]={100,1,2,3,4,5,6,7,8,9,10,11,12,13,14};
int c[16];
int lowbit(int x)
{
return x&(-x);
}
int sum(int x)
{
int ret=0;
while(x>0)
{
ret+=c[x];
x=x-lowbit(x);
}
return ret;
}
int add(int x,int num)
{
while(x<=16)
{
c[x]+=num;
x=x+lowbit(x);
}
}
int main()
{
for(int i=1;i<16;i++)
{
add(i,a[i]);
}
for(int i=1;i<16;i++)
{
cout<<sum(i)<<"|";
}
return 0;
}
二叉索引树P195
最新推荐文章于 2023-03-24 19:53:14 发布