zoukankan      html  css  js  c++  java
  • HDU1556 color the ball(前缀和)

    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

    思路:

    前缀和,没啥了。

    代码:

    #include<iostream>
    #include<stdio.h>
    #include<queue>
    #include<cstring>
    
    using namespace std;
    
    int N;
    
    int main()
    {
    	while(scanf("%d",&N) && N )
    	{
    		int board[N+1];
    		memset(board,0,sizeof(board));
    		int T = N;
    		while(T--)
    		{
    			int a,b;
    			cin>> a >> b;
    			board[a]++;
    			board[b+1]--;
    		}
    		int sum = board[1];
    		printf("%d",board[1]);
    		for(int i=2 ; i<=N ; i++)
    		{
    			sum += board[i];
    			printf(" %d",sum);
    		}
    		putchar('
    ');
    	}
    	return 0;
    }
    


  • 相关阅读:
    如何在VIM中编辑并保存退出!!!
    MapReduce---数据清洗
    构建之法阅读笔记03
    人月神话阅读笔记03
    学习进度报告16
    大道至简阅读笔记03
    大道至简阅读笔记02
    个人总结
    大道至简阅读笔记01
    学习进度报告15
  • 原文地址:https://www.cnblogs.com/vocaloid01/p/9514294.html
Copyright © 2011-2022 走看看