hdoj 1556
来源:互联网 发布:广电网络宽带收费标准 编辑:程序博客网 时间:2024/05/07 14:00
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1556
题意:
给一堆气球涂色,每次涂色的区间为[a, b],涂N次,问每个气球被涂了多少次。
思路:
利用树状数组的特点,但要注意的是当从区间a涂到b时,b之后的数组要减1次,这样在sum取结果时才不会出错。
AC代码:
#include<iostream>#include<cstdio>#include<cstring>using namespace std;#define lowbit(x) x & (-x)const int M = 100020;int tree[M], n;void add(int a, int b){ while(a <= n) { tree[a] += b; a += lowbit(a); }}int sum(int a){ int total = 0; while(a > 0) { total += tree[a]; a -= lowbit(a); } return total;}main(){ while(cin >> n && n) { memset(tree, 0, sizeof(tree)); for(int i = 1; i <= n; i++) { int a, b; scanf("%d %d", &a, &b); add(a, 1); add(b + 1, -1); } cout << sum(1); for(int i = 2; i <= n; i++) printf(" %d", sum(i)); cout << endl; }}
0 0
- hdoj 1556
- HDOJ
- hdoj
- hdoj
- HDOJ
- HDOJ 1556 Color the ball
- HDOJ 1556 Color the ball
- HDOJ 1556 Color the ball
- Color the ball HDOJ--1556
- hdoj 1556 Color the ball
- HDOJ 1556 Color the ball
- HDOJ-1556 Color the ball
- HDOJ 1556 Color the ball
- hdoj-1556-Color the ball
- HDoj-1556-Color the ball-树状数组
- hdoj 1556 Color the ball 【树状数组】
- hdoj 1556 Color the ball(树状数组)
- HDOJ Color the ball 1556【树状数组】
- 字节序基础知识
- 某坑爹公司的笔记_Day03
- Catalan数(二)
- 微软企业库Unity依赖注入
- javascript递归实现定时器
- hdoj 1556
- ndk-stack 学习使用
- c++学习笔记之纯虚函数
- harris
- 周鸿祎:做产品体验先把自己切换到二傻子模式
- max函数(matlab)
- powerdesigner 设置默认值,设置不为空约束
- C# - Check email existance in Outlook
- Qt中背景图片随窗口自动伸缩