hdu Flowers

Flowers

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 0    Accepted Submission(s): 0


Problem Description
As is known to all, the blooming time and duration varies between different kinds of flowers. Now there is a garden planted full of flowers. The gardener wants to know how many flowers will bloom in the garden in a specific time. But there are too many flowers in the garden, so he wants you to help him.
 

 

Input
The first line contains a single integer t (1 <= t <= 10), the number of test cases.
For each case, the first line contains two integer N and M, where N (1 <= N <= 10^5) is the number of flowers, and M (1 <= M <= 10^5) is the query times.
In the next N lines, each line contains two integer S i and T i (1 <= S i <= T i <= 10^9), means i-th flower will be blooming at time [S i, T i].
In the next M lines, each line contains an integer T i, means the time of i-th query.
 

 

Output
For each case, output the case number as shown and then print M lines. Each line contains an integer, meaning the number of blooming flowers.
Sample outputs are available for more details.
 

 

Sample Input
2 1 1 5 10 4 2 3 1 4 4 8 1 4 6
 

 

Sample Output
Case #1: 0 Case #2: 1 2 1
 

 

Author
Cloud
AC代码:
输入4输出 2 原因第一朵开花在【1,4】,第二朵开花在[4,8】  第4时刻有两朵
#include <stdio.h>

#include <string.h>

int p[10000000]; int main( ) { int T;

    scanf( "%d", &T ); for(int Case=1; Case<=T; ++ Case) {

        printf( "Case #%d:\n",Case ); int N, M,a, b;

        scanf("%d%d", &N,&M );

        memset( p,0,sizeof p); for( int i=0;i<N;++i ) {

            scanf( "%d%d", &a, &b ); for( int j=a; j<=b; ++j )

                p[j]++; } for( int i=0;i<M;++i ) { int x;

            scanf( "%d", &x );

            

            printf("%d\n", p[x] ); } } return 0; } 
链接: http://acm.hdu.edu.cn/contests/contest_showproblem.php?cid=400&pid=1006
 

你可能感兴趣的:(HDU)