树状数组的区间修改,单点查询

来源:互联网 发布:ipad淘宝发布宝贝 编辑:程序博客网 时间:2024/04/28 19:12

hdu  1556 Color the ball

要想区间修改的话,那么节点就必须往上更新,查询时往上累加。(区间修改,单点查询)

#include<iostream>#include<cstdio>#include<algorithm>using namespace std;const int maxn=100000+5;int C[maxn];int n;int lowbit(int x){    return (-x)&x;}void update(int x,int y){    for(int i=x; i>0;i-=lowbit(i))        C[i]+=y;}int query(int x){    int s=0;    for(int k=x; k<=n; k+=lowbit(k))        s+=C[k];    return s;}int main()                                          {    int a,b;    while(cin>>n)    {       for(int i=1; i<=n; i++)        C[i]=0;       for(int h=0;h<n;h++)      {       scanf("%d%d",&a,&b);       update(b,1);       update(a-1,-1);      }       for(int j=1;j<=n;j++)        if(j==n)   printf("%d\n",query(j));       else          printf("%d ",query(j));          //printf("%d%c",query(i),i==n?'\n':' ');      }    return 0;}

 

csu 1335 高桥和低桥(树状数组+二分)


#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>using namespace std;const int N = 1e5+10;int c[N],m,n,k,a[N];int x[N],y[N];int lowbit(int k){    return k&(-k);}void add(int k,int he){    while(k>0)    {        c[k]+=he;        k-=lowbit(k);    }}int  Q(int k){    int query=0;    while(k<=n)    {     query+=c[k];        k+=lowbit(k);    }    return query;}int main(){    #ifndef ONLINE_JUDGE    freopen("in.cpp","r",stdin);    #endif // ONLINE_JUDGE    int t,from,to,he,kkk=1;    while(~scanf("%d%d%d",&n,&m,&k))    {      memset(c,0,sizeof(c));      for(int i=0;i<n;i++)        scanf("%d",&a[i]);        sort(a,a+n);        int cur=1;        int s,t;       for(int i=1;i<=m;i++)       {           scanf("%d %d",&s,&t);           int from=upper_bound(a,a+n,cur)-a;           int to=upper_bound(a,a+n,s)-a;           add(from,-1);           add(to,+1);           cur=t;       }        int ans =0 ;        for(int i=1;i<=n;i++)        {            int kk =Q(i);            if(kk>=k)            ans = ans+1;        }        printf("Case %d: %d\n",kkk++,ans);    }    return 0;}


相关题:  hdu  A Simple Problem with Integers
                       



0 0
原创粉丝点击