收藏一个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;
    }
}

猜你喜欢

转载自blog.csdn.net/linruier2017/article/details/81588456