zoukankan      html  css  js  c++  java
  • HDU 1556 Color the ball【算法的优化】

    /*
    解题思路:每次仅仅求解一開始的第一个数字,让第一个数字加一,最后的一个数字的后面一个数减一。我们能够想想,最后加的时候,就是加上前面一个数出现的次数和自己本身出现的次数。
    解题人:lingnichong
    解题时间:2014-10-25 10:30:46
    解题体会:因为測试区间非常大,所以此题非常easy超时
    */

    Color the ball

    Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 9738    Accepted Submission(s): 5013


    Problem Description
    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
     

    Author
    8600
     



    #include<stdio.h>
    #include<string.h>
    #define MAXN 100000+10
    int arr[MAXN];
    int main()
    {
    	int N,i,j;
    	int a,b,t,m;
    	while(scanf("%d",&N),N)
    	{
    		m=0;
    		memset(arr,0,sizeof(arr));
    		for(i=0;i<N;i++)
    		{
    		    scanf("%d%d",&a,&b);
    		    arr[a]++,arr[b+1]--;
    		}
    		for(i=1;i<N;i++)
    		{
    			m+=arr[i];
    			printf("%d ",m);
    		}
    		printf("%d
    ",m+arr[N]);
    	}
    	return 0;
    }
    





  • 相关阅读:
    PCA本质和SVD
    特征工程(转载)
    python入门基础代码
    长尾理论
    金融行业数据分析
    [rancher-net]
    rancher中使用ingress-lbs做负载均衡
    python 高级语言特性
    docker从初识到深入
    关于容器技术的发展以及虚拟化技术的总结
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4211879.html
Copyright © 2011-2022 走看看