收藏一个bit模板使用实例
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define MAX_N 1000000
int bit[MAX_N+1],n=5;
int a[6]={0,1,2,3,4,5};
int sum(int i)
{
int s=0;
while(i>0)
{
s+=bit[i];
i-=i&-i;
}
return s;
}
void add(int i,int x)
{
while(i<=n)
{
bit[i]+=x;
i+=i&-i;
}
}
int main()
{
for(int i=1;i<=5;i++) add(i,a[i]);
cout<<endl;
int l,r;
while(cin>>r)
{
cout<<sum(r)<<endl;
}
}