题目描述:

N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a <= b),lele便为骑上他的“小飞鸽"牌电动车从气球a开始到气球b依次给每个气球涂一次颜色。但是N次以后lele已经忘记了第I个气球已经涂过几次颜色了,你能帮他算出每个气球被涂过几次颜色吗?

Input

每个测试实例第一行为一个整数N,(N <= 100000).接下来的N行,每行包括2个整数a b(1 <= a <= b <= N)。 
当N = 0,输入结束。

Output

每个测试实例输出一行,包括N个整数,第I个数代表第I个气球总共被涂色的次数。

Sample Input

3
1 1
2 2
3 3
3
1 1
1 2
1 3
0

Sample Output

1 1 1
3 2 1

问题描述:

给我们n个气球,然后分n次给L到R这个区间的气球涂色,求最后所有气球的涂色次数。

分析:

将其比作发糖问题,给n个小朋友发糖,分n次给L到R这个标号区间的小朋友发糖,问每个小朋友得到的糖果数.那么,问题可以看作先给L到n这段区间的小朋友发一个糖,然后将R+1到n这段区间的小朋友的糖收回一个,即从a[L]开始,所有小朋友的糖果数+1,从a[R+1]开始,所有小朋友的糖果数-1,即a[L]++,a[R+1]--;最后,第i个小朋友的糖果数即为a[i] = a[1]+a[2]+……+a[i-1],用for循环做,即糖果数即为a[i] +=a[i-1].

代码:

#include<bits/stdc++.h>
using namespace std;
#define maxn 100007  //元素总个数
int a[maxn],n;//存原数组下标[1,n]void init (int n){for(int i = 1; i<=n;i++)a[i]=0;}
int main()
{while(~scanf("%d", &n)!=EOF){if(n==0)break;init(n);for(int i = 1; i <= n; i++){int l,r;cin>>l>>r;a[l]++;a[r+1]--;/*将从l到r的刷漆转化为从l到n的刷漆减去从r到n的刷漆,/因此,从l开始权值均为+1,从r+1开始权值均为-1,这表示先从l到n全部刷了一遍,再把从r+1到n的漆全部去掉*/}for(int i = 1; i <= n; i++){if(i==1)printf("%d", a[1]);else{a[i]+=a[i-1];printf(" %d", a[i]);}}cout<<endl;}return 0;
}

1556 Color the ball相关推荐

  1. hdu 1556:Color the ball(第二类树状数组 —— 区间更新,点求和)

    Color the ball Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  2. hdu 1556 Color the ball

    Color the ball Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  3. HDU 1556 Color the ball (数状数组)

    Color the ball Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  4. 杭电1556 Color the ball

    Color the ball Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  5. 解题报告:hdu 1556 Color the ball(区间修改,单点查询)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1556 Problem Description N个气球排成一排,从左到右依次编号为1,2,3....N ...

  6. HDU 1556 Color the ball

    题解:基础的树状数组区间修改,单点查询. #include <cstdio> #include <cstring> int c[100005],a,b,n; int modif ...

  7. HDU - 1556 Color the ball(树状数组)

    N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a <= b),lele便为骑上他的"小飞鸽"牌电动车从气球a开始到气球b依次给每个气球涂一 ...

  8. HDOJ/HDU 1556 Color the ball(树状数组)

    Problem Description N个气球排成一排,从左到右依次编号为1,2,3-.N.每次给定2个整数a b(a <= b),lele便为骑上他的"小飞鸽"牌电动车从 ...

  9. HDU 1556 Color the Ball 线段树 题解

    本题使用线段树自然能够,由于区间的问题. 这里比較难想的就是: 1 最后更新须要查询全部叶子节点的值,故此须要使用O(nlgn)时间效率更新全部点. 2 截取区间不能有半点差错.否则答案错误. 这两点 ...

  10. hdu 1556 Color the ball 线段树 区间更新

    水一下 #include <bits/stdc++.h> #define lson l, m, rt<<1 #define rson m+1, r, rt<<1|1 ...

最新文章

  1. 面试官比较看重简历中的哪些维度,有什么写简历的技巧、建议和总结?
  2. SAP 电商云 Spartacus UI 回归测试 wish-list.core-e2e-spec.ts
  3. 求1+2+…+n变态问题的两个很棒的解法
  4. PHP lareal_怎么样能在mysql里结合php的函数
  5. “硅谷女王”传奇:她是谷歌云 CEO,创立巨头 VMware
  6. python中的as是什么意思_python中as用法实例分析
  7. 解析库的基本使用(BeautifulSoup、Xpath(重点)、PyQuery)
  8. 在vs2008中编译(调试)eMule0.50a以及veryCD版的easyMule
  9. 【JS】中文繁简转换
  10. HMC510LP5ETR资料
  11. 根据个人情况以及Java程序员面试宝典总结的需要复习的知识点
  12. 制作rime配色的fcitx皮肤
  13. 原神梦里花花种在哪种
  14. 4:3比例 android 平板,分辨率与屏幕比例 决定你实际应用_平板电脑_平板电脑评测-中关村在线...
  15. Innovus零基础lab学习全面复盘总
  16. 量子计算数学基础,pauli 矩阵
  17. 速览|京东云11月产品与功能更新
  18. RGB颜色转HEX进制与单位换算
  19. 手把手教你将chatGpt接到微信
  20. 一千行mysql笔记

热门文章

  1. IT企业面试常见逻辑推理题智力题及详解答案(二)
  2. Java-8-Optional类
  3. ext3文件系统基础
  4. 彩色图像、灰度图像、二值图像和索引图像
  5. 【读书笔记】【More Effective C++】异常(Exceptions)
  6. 如何通过命令提示符进入MySQL服务器
  7. iOS 生成二维码 原生代码
  8. Flutter 多子 Widget 布之Stack、Positioned
  9. PHP 递归和递推思想
  10. 解决-最新版Google谷歌浏览器上传下载卡死无响应-问题