树状数组

来源:互联网 发布:英雄联盟观战软件 编辑:程序博客网 时间:2024/06/13 23:55
#include<stdio.h>#include<stdlib.h>int c[32010],s[15010],n;int lowbit(int x){    return x & (x^(x-1));}void change(int k,int delta){    while(k<=32010){        c[k]=c[k]+delta;        k=k+lowbit(k);    }}int getsum(int k){    int t;    t=0;    while(k>0){        t+=c[k];        k=k-lowbit(k);               }        return t;}int main(){    int i,j,k,m;    int x,y;    scanf("%d",&n);    for(i=1;i<=n;i++){        scanf("%d%d",&x,&y);        s[getsum(++x)]++;        change(x,1);    }    for(i=0;i<n;i++)        printf("%d\n",s[i]);    return 0;    }

0 1
原创粉丝点击