首页 > 其他 > 详细

lougu P3184 [USACO16DEC]Counting Haybales S |二分

时间:2020-03-15 09:25:41      阅读:62      评论:0      收藏:0      [点我收藏+]

题目描述

Farmer John has just arranged his NN haybales (1 \leq N \leq 100,0001≤N≤100,000) at various points along the one-dimensional road running across his farm. To make sure they are spaced out appropriately, please help him answer QQ queries (1 \leq Q \leq 100,0001≤Q≤100,000), each asking for the number of haybales within a specific interval along the road.

农夫John在一条穿过他的农场的路上(直线)放了N个干草垛(1<=N<=100,000),每个干草垛都在不同的点上。为了让每个干草垛之间都隔着一定的距离,请你回答农夫John的Q个问题(1<=Q<=100,000),每个问题都会给出一个范围,询问在这个范围内有多少个干草垛。

(其实就是有一条数轴上有N个不重复的点,再问Q个问题,每个问题是给出一个范围,问此范围内有多少个点?)

(在给出范围的边界上也算)

输入格式

The first line contains N and Q.

The next line contains N distinct integers, each in the range 0 \ldots 1,000,000,000, indicating that there is a haybale at each of those locations.

Each of the next Q lines contains two integers A and B(0 \leq A \leq B \leq 1,000,000,000) giving a query for the number of haybales between A and B, inclusive.

第一行包括N和Q

第二行有N个数字,每个数字的范围在0~1,000,000,000,表示此位置有一个干草垛。

接下来的Q行,每行包括两个数字,A和B(0<=A<=B<=1,000,000,000)表示每个询问的范围

输出格式

You should write Q lines of output. For each query, output the number of haybales in its respective interval.

总共Q行,每行输出此范围内的干草垛数量


挺简单的

就不做说明了

水水博客

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
const int N=1e6+10;
int a[N];
signed main(){
    int n,q;
    cin>>n>>q;
    for(int i=1;i<=n;i++)scanf("%d",&a[i]);
    sort(a+1,a+1+n);
    int A,B;
    while(q--){
        scanf("%d%d",&A,&B);
        int op1=lower_bound(a+1,a+1+n,A)-a;
        int op2=upper_bound(a+1,a+1+n,B)-a;
        printf("%d\n",op2-op1);
    }
}

lougu P3184 [USACO16DEC]Counting Haybales S |二分

原文:https://www.cnblogs.com/naruto-mzx/p/12495438.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!