首页 > 代码库 > HDU 1556 Color the ball(树状数组)(填坑)
HDU 1556 Color the ball(树状数组)(填坑)
题目地址:HDU 1556
因为听别人说树状数组能做的线段树都可以,所以也一直没学,但是现在遇到好多题卡线段树。。。跪了。。所以就学一下填填坑。
这题应该是树状数组的入门题了。不多说了。
代码如下:
#include <iostream> #include <string.h> #include <math.h> #include <queue> #include <algorithm> #include <stdlib.h> #include <map> #include <set> #include <stdio.h> using namespace std; #define LL __int64 int a[110000], n; int lowbit(int x) { return x&(-x); } void Update(int x, int p) { while(x>0){ a[x]+=p; x-=lowbit(x); } } int Sum(int x) { int s=0; while(x<=n){ s+=a[x]; x+=lowbit(x); } return s; } int main() { int i, j, l, r; while(scanf("%d",&n)!=EOF&&n){ memset(a,0,sizeof(a)); for(i=0;i<n;i++){ scanf("%d%d",&l,&r); Update(r,1); Update(l-1,-1); } for(i=1;i<=n;i++){ printf("%d",Sum(i)); if(i!=n) printf(" "); } puts(""); } return 0; }
HDU 1556 Color the ball(树状数组)(填坑)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。