zoukankan      html  css  js  c++  java
  • [swustoj 327] 最小的最大与最大的最小

    最小的最大与最大的最小(0327)

    Time limit(ms): 2500 Memory limit(kb): 65535 Submission: 329 Accepted: 18
     
    问题描述

    又是一个数据处理题(>_<)。还是直接看Input吧。

    输入

    一组测试实例。 Line 1:两个数n, m (1 <= n <= 1000000, 1 <= m <= 100000),n表示数字个数,m表示查询次数。 Line 2:包含n个整数A(i)(0 <= A(i) <= 1000000000)。两个数之间以空格隔开。 接下来m行:每行包含两个整数a,b(1 <= a <= 2, -1000000000 <= b <= 1000000000)。表示一次查询。当a = 1时,输出n个数中比b小的数的最大值。当a = 2时,输出n个数中比b大的数的最小值。如果不存在满足条件的数,则输出-1。

    输出

    每于每一次查询,输出答案,每个答案占一行。

    样例输入
    5 2
    1 2 3 3 5
    1 3
    2 5

    样例输出
    2
    -1
     
    Hint
    SCPC_Zhangjian
    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    #define INF 0x7fffffff
    #define N 1000010
     
    int n,m;
    int a[N];
     
    int low_bound(int k)
    {
        int l=1,r=n+1;
        while(l<r)
        {
            int m=l+(r-l)/2;
            if(a[m]>=k) r=m;
            else l=m+1;
        }
        return l;
    }
    int up_bound(int k)
    {
        int l=1,r=n+1;
        while(l<r)
        {
            int m=l+(r-l)/2;
            if(a[m]<=k) l=m+1;
            else r=m;
        }
        return l;
    }
     
    int main()
    {
        int i,j,x;
        scanf("%d%d",&n,&m);
        for(i=1;i<=n;i++)
        {
            scanf("%d",&a[i]);
        }
        sort(a+1,a+n+1);  //逗比了、没排序、一直WA、受不了= =
        while(m--)
        {
            int op,x;
            scanf("%d%d",&op,&x);
            if(op==1 && a[1]>=x || op==2 && a[n]<=x)
            {
                cout<<-1<<endl;
                continue;
            }
            if(op==1)
            {
                int ans=low_bound(x);
                ans--;
                cout<<a[ans]<<endl;
            }
            else
            {
                int ans=up_bound(x);
                cout<<a[ans]<<endl;
            }
        }
        return 0;
    }
    趁着还有梦想、将AC进行到底~~~by 452181625
  • 相关阅读:
    MySQL隐式类型转换导致索引失效
    解决MySQL报错[Err] 1093
    二:C#对象、集合、DataTable与Json内容互转示例;
    一:Newtonsoft.Json 支持序列化与反序列化的.net 对象类型;
    Newtonsoft.Json 概述
    为什么Elasticsearch查询变得这么慢了?
    Elasticsearch 5.x 字段折叠的使用
    Elasticsearch 删除数据
    Linux环境下安装 ElasticHD
    ElasticHD Windows环境下安装
  • 原文地址:https://www.cnblogs.com/hate13/p/4044705.html
Copyright © 2011-2022 走看看