首页 > 其他分享 >【洛谷 P2249】【深基13.例1】查找(向量+lower_bound)

【洛谷 P2249】【深基13.例1】查找(向量+lower_bound)

时间:2024-02-02 21:32:58浏览次数:24  
标签:13 ch P2249 int 深基 bound 整数 read lower

【深基13.例1】查找

题目描述

输入 【洛谷 P2249】【深基13.例1】查找(向量+lower_bound)_#include 个不超过 【洛谷 P2249】【深基13.例1】查找(向量+lower_bound)_i++_02 的单调不减的(就是后面的数字不小于前面的数字)非负整数 【洛谷 P2249】【深基13.例1】查找(向量+lower_bound)_#include_03,然后进行 【洛谷 P2249】【深基13.例1】查找(向量+lower_bound)_i++_04 次询问。对于每次询问,给出一个整数 【洛谷 P2249】【深基13.例1】查找(向量+lower_bound)_i++_05,要求输出这个数字在序列中第一次出现的编号,如果没有找到的话输出 【洛谷 P2249】【深基13.例1】查找(向量+lower_bound)_ios_06

输入格式

第一行 【洛谷 P2249】【深基13.例1】查找(向量+lower_bound)_i++_07 个整数 【洛谷 P2249】【深基13.例1】查找(向量+lower_bound)_#include【洛谷 P2249】【深基13.例1】查找(向量+lower_bound)_i++_04,表示数字个数和询问次数。

第二行 【洛谷 P2249】【深基13.例1】查找(向量+lower_bound)_#include 个整数,表示这些待查询的数字。

第三行 【洛谷 P2249】【深基13.例1】查找(向量+lower_bound)_i++_04 个整数,表示询问这些数字的编号,从 【洛谷 P2249】【深基13.例1】查找(向量+lower_bound)_ios_12 开始编号。

输出格式

输出一行,【洛谷 P2249】【深基13.例1】查找(向量+lower_bound)_i++_04 个整数,以空格隔开,表示答案。

样例 #1

样例输入 #1

11 3
1 3 3 3 5 7 9 11 13 15 15
1 3 6

样例输出 #1

1 2 -1

提示

数据保证,【洛谷 P2249】【深基13.例1】查找(向量+lower_bound)_#include_14【洛谷 P2249】【深基13.例1】查找(向量+lower_bound)_#include_15【洛谷 P2249】【深基13.例1】查找(向量+lower_bound)_#include_16

本题输入输出量较大,请使用较快的 IO 方式。

思路

数据量很大,需要优化读入。lower_bound通过二分查找,返回第一个大于等于某个数的元素的指针。如果指针解引用正好是要找的数,则该指针和向量开头的差值加一为这个数字在序列中第一次出现的编号。如果用lower_bound返回的指针为向量结尾,或对其解引用的值不为查询的值,则没有找到,返回-1。

AC代码

#include <iostream>
#include <vector>
#include <algorithm>
#define AUTHOR "HEX9CF"
using namespace std;

int read(){
    char ch;
    int x = 0;
    while((ch < '0' || ch > '9')){
        ch = getchar();
    }
    while(!(ch < '0' || ch > '9')){
        x = x * 10 + ch - '0';
        ch = getchar();
    }
    return x;
}

int main(){
    int n, m;
    vector<int> a;
    n = read();
    m = read();
    for(int i = 0; i < n; i++){
        a.push_back(read());
    }
    for(int i = 0; i < m; i++){
        if(i){
            putchar(' ');
        }
        int t = read();
        vector<int>::iterator lb = lower_bound(a.begin(), a.end(), t);
        if(lb == a.end() || *lb != t){
            cout << -1;
        }else{
            cout << lb - a.begin() + 1;
        }
    }
    return 0;
}

标签:13,ch,P2249,int,深基,bound,整数,read,lower
From: https://blog.51cto.com/HEX9CF/9562339

相关文章

  • 基于Deepspeed实现LLaMA-13B或70B模型的微调
    写在前面事实证明,在部分情况下,依然有开启deepspeed的必要性这是上一篇文章,讲述使用双卡/8卡3090微调llama2-70B/13B模型-AlphaInf-博客园(cnblogs.com)但这一篇文章,存在下面的几个问题:如果训练的数据的seq_len过长,那么很有可能出现OOM,无法训练长的数据如果需要调的参数......
  • STM32MP135开发板助力电力行业,IEC61850协议移植笔记
    1.概述IEC61850是变电站自动化系统(SAS)中通信系统和分散能源(DER)管理的国际标准。它通过标准的实现,实现了智能变电站的工程运作标准化。使得智能变电站的工程实施变得规范、统一和透明,在电力和储能系统中应用非常广泛。本文基于米尔MYD-YF13X开发板,在Linux系统上移植和使用开源的l......
  • STM32MP135开发板助力电力行业,IEC61850协议移植笔记
    1.概述IEC61850是变电站自动化系统(SAS)中通信系统和分散能源(DER)管理的国际标准。它通过标准的实现,实现了智能变电站的工程运作标准化。使得智能变电站的工程实施变得规范、统一和透明,在电力和储能系统中应用非常广泛。本文基于米尔MYD-YF13X开发板,在Linux系统上移植和使用开源的libI......
  • 13个可能未使用过的Python特性
    大多数程序员不知道的令人难以置信的功能列表。Python是顶级编程语言之一,它具有许多程序员从未使用过的许多隐藏功能。在这篇文章中,我将分享你可能从未使用过的13个Python特性。1.列表Stepping这是一个step参数,可以通过采取几个步骤来分割你的列表。此外,你可以使用step参数......
  • POJ--2139 Six Degrees of Cowvin Bacon(最短路)
    记录20:342024-2-1http://poj.org/problem?id=2139最短路问题,使用Floyd后遍历选择就可以了。注意是多case输入,答案截尾。#include<cstdio>#include<cstring>#include<iostream>#defineMAX_N305#defineMAX_M10005usingnamespacestd;constintINF=0x3f3f3f3f;......
  • ChatGPT 被曝泄露私密对话;美国 AI 企业一天蒸发 1.3 万亿市值丨 RTE 开发者日报 Vol.1
      开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(RealTimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑......
  • 13.画刷(Brush)
    在进行WPF界面设计时,我们需要在很多地方设置颜色属性,比如元素的背景色、前景色以及边框的颜色,还有形状的内部填充和笔画,这些颜色的设置在WPF中都以画刷(Brush)的形式实现。比如最常用的画刷就是SolidColorBrush,它表示一种纯色。publicabstractclassBrush:Animatable,IFormat......
  • [stable/nginx-ingress] [emerg] 46#46: bind() to 0.0.0.0:80 failed (13: Permissio
    该报错与nginx的报错是一样的,不同的是发生在kubernetes-ingress场景。使用NginxIngressController时,以Deployment的方式启动POD时会报错。使用的Deployment配置示例:https://github.com/nginxinc/kubernetes-ingress/blob/main/deployments/deployment/nginx-ingress.yaml这......
  • 20240130
    Kotlin编程知识总结总结自《Android第一行代码》变量varval可变变量不可变变量自动类型推导:vala=10显式声明类型:vala:Int=10函数关键词funfunmethodName(param1:Int,param2:Int):Int{ return0}语法糖funmethodName(param1:Int,param2:Int):......
  • CF138A Literature Lesson
    原题传送门分析既然题目要求求出所有四行诗共同的形态,那我们就想到可以用位运算。我们用二的次方来表示每一种形态,然后把每一篇诗的形态或起来,就可以得到最终的形态。输出的时候再拿个函数转一下就行了。有了基本框架,我们就可以开始构造特殊情况。题目中说到如果有aaaa这种......