zoukankan      html  css  js  c++  java
  • hdoj--1556--Color the ball(模拟&&树状数组)

    Color the ball

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



    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
     

    Source
     

    Recommend
    LL   |   We have carefully selected several similar problems for you:  1542 1394 1698 1255 2795

    先来一组大神的代码,真神奇的模拟,思路太好了

    #include<stdio.h>
    #include<string.h>
    int num[1000010];
    int main()
    {
    	int n;
    	while(scanf("%d",&n),n)
    	{
    		memset(num,0,sizeof(num));
    		int m=0;
    		for(int i=0;i<n;i++)
    		{
    			int a,b;
    			scanf("%d%d",&a,&b);
    			num[a]++;
    			num[b+1]--;
    		}
    		for(int i=1;i<n;i++)
    		{
    			m+=num[i];
    			printf("%d ",m);
    		}
    		printf("%d
    ",m+num[n]);
    	}
    	return 0;
    }

    树状数组
    #include<stdio.h>
    #include<string.h>
    int num[100010];
    int n;
    void add(int x,int k)
    {
    	while(x>=1)
    	{
    		num[x]+=k;
    		x-=x&(-x);
    	}
    }
    int sum(int x)
    {
    	int s=0;
    	while(x<=n)
    	{
    		s+=num[x];
    		x+=x&(-x);
    	}
    	return s;
    }
    int main()
    {
    	while(scanf("%d",&n),n)
    	{
    		memset(num,0,sizeof(num));
    		for(int i=0;i<n;i++)
    		{
    			int a,b;
    			scanf("%d%d",&a,&b);
    			add(b,1);
    			add(a-1,-1);
    		}
    		for(int i=1;i<=n;i++)
    		{
    			if(i>1)
    			printf(" ");
    			printf("%d",sum(i));
    		}
    		printf("
    ");
    	}
    	return 0;
    }

     
  • 相关阅读:
    myeclipse python下配置文档说明_转载
    Python快速教程博客园地址
    Mysql_存储功能
    Java_链表实现
    浅谈JAVA集合框架(转载)_常用的Vector和HashMap
    Java_Vector类的使用,以及Stack继承Vector,推出的栈的特性
    JavaWeb_数据传输_原
    HTML <input> 标签的 type 属性
    Java_Web_request.setAttribute("result",username);
    秦柯视频与文档资料-全集
  • 原文地址:https://www.cnblogs.com/playboy307/p/5273671.html
Copyright © 2011-2022 走看看