zoukankan      html  css  js  c++  java
  • 花儿朵朵

    花儿朵朵

    描述

    春天到了,花儿朵朵盛开,hrdv是一座大花园的主人,在他的花园里种着许多种鲜花,每当这个时候,就会有一大群游客来他的花园欣赏漂亮的花朵,游客们总是会询问,某个时间有多少种花儿同时在盛开着?hrdv虽然知道每种花儿的开花时间段,但是他不能很快的答出游客的问题,你能编写一个程序帮助他吗?

     
    输入
    第一行有个整数t,表示有t组测试数据,每组测试数据第一行为两个整数n,m(0<n<100000,0<m<100000);随后有n行,每一行有两个整数x,y(0<x<y<1000000000),表示这一种花的盛开时间是从x到y;随后有m行,每行有一个整数,代表游客询问的时间。
    输出
    对于每次游客的询问,输出一个整数在单独的一行,表示这个时间盛开的花有多少种。
    样例输入
    2
    1 1
    5 10
    4
    2 3
    1 4
    4 8
    1
    4
    6
    样例输出
    0
    1
    2
    1

     
    #include<stdio.h>
    #include<string.h>
    #define N 1000000
    int a[N],a1[N];
    int main()
    {
    int t,i,j,n,m,x,y;
    scanf("%d",&t);
    while(t--)
    {
    scanf("%d%d",&n,&m);
    memset(a,0,sizeof(a));
    memset(a1,0,sizeof(a1));
    for(i=1;i<=n;i++)
    {
    scanf("%d%d",&x,&y);
    if(y <=N)
    for(j=x;j<=y;j++)
    a[j]++;
    else if(x>N)
    {
    x=x%N;
    y=y%N;
    for(j=x;j<=y;j++)
    a1[j]++;
    }
    else if(x<=N&&y>N)
    {
    for(j=x;j<=N;j++)
    a[j]++;
    for(j=1;j<=y%N;j++)
    a1[j]++;
    }
    }
    while(m--)
    {
    scanf("%d",&x);
    if(x<=N)
    printf("%d
    ",a[x]);
    else
    printf("%d
    ",a1[x%N]);
    }
    }
    return 0;
    }        
  • 相关阅读:
    Haskell 差点儿无痛苦上手指南
    蛋疼的Apple IOS Push通知协议
    css概述
    数据挖掘十大经典算法
    序员工作究竟能干多久?程序猿的前途怎样?
    怎样将程序猿写出来的程序打包成安装包(最简单的)
    Denny Zhang:一辈子做一个自由职业者
    自己动手写操作系统--个人实践
    结构体数组
    英雄会挑战失败求原因
  • 原文地址:https://www.cnblogs.com/imwtr/p/4069613.html
Copyright © 2011-2022 走看看