查询数字的最邻近

news/2024/4/29 19:46:10/文章来源:https://www.cnblogs.com/wjk53233/p/16656123.html

 

 

 

 这道题目要用二分+桶排的方式解决

函数:

l~r找v

c:靠左/右(‘l’/‘r’)

靠左和靠右用STL函数二分就行,这里讲一下思路,二分出最靠左/右的v值(but二维,在but[v][0~len]区间二分)再判断是否在区间内在区间内输出but[v][a](a为二分的答案)否则输出-1。

最后再考虑一下需要输出-1的特殊情况(区间内没有v、不合法..........)即可

主函数:

调用函数即可

例程:

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
vector<int > but[N];
int n,m;
int e_f(int l,int r,int v,char c)
{if(l>r||but[v].size()==0||l<=0||r>n) return -1;if(c=='l'){int a=lower_bound(but[v].begin(),but[v].end(),l)-but[v].begin();if(but[v][a]>=l&&but[v][a]<=r) return but[v][a];else return -1;}else if(c=='r'){int a=upper_bound(but[v].begin(),but[v].end(),r)-but[v].begin();a-=1;if(but[v][a]>=l&&but[v][a]<=r) return but[v][a];else return -1;}
}
int main()
{
#ifdef LOCALfreopen( "1.in", "r", stdin );freopen( "1.out", "w", stdout );
#endifscanf("%d%d",&n,&m);for(int i=1;i<=n;i++){int t;scanf("%d",&t);but[t].push_back(i);}while(m--){int l,r,v;scanf("%d%d%d",&l,&r,&v);int a1=e_f(l,r,v,'l');int a2=e_f(l,r,v,'r');int a3=e_f(1,l-1,v,'r');int a4=e_f(r+1,n,v,'l');printf("%d %d %d %d\n",a1,a2,a3,a4);        }return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_5550.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

注解Annotation

注解是一种引用数据类型,重点掌握Deprecated(表示已过时),Override(表示重写)。 元注解是用来标注注解类型的注解如Target(用来标注注解可以出现在哪些位置)、Retention(用来标注最终保存到哪里)。 package com.javastudy.example13;import java.lang.annotation.Ann…

计算机毕业设计php+vue基于微信小程序的员工宿舍报修系统

项目介绍 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时…

神奇的卡尔曼滤波,目标追踪的福音

前言 卡尔曼滤波算法由匈牙利数学家Kalman提出&#xff0c;主要基于线性系统提出。这里我们将其用于汽车跟踪&#xff0c;并对其基本原理进行介绍。 神奇的卡尔曼滤波&#xff0c;目标追踪的福音 1. 背景知识 1.1 时间序列模型 1.2. 滤波 1.3. 线性动态系统 2. 卡尔曼滤波…

python生成PDF报告

如何使用Python制作pdf文档&#xff1f; PDF报告生成软件开发&#xff08;学习记录&#xff09; Python生成图文并茂的PDF报告 官方用户手册 字体下载注册问题 在windows找到字体文件&#xff1a;C:\Windows\Fonts 在你的python环境引入字体 D:\devementtool\Anaconda3-202…

Java并发 JUC工具类:Semaphore详解

文章目录Semaphore源码分析类的继承关系类的内部类类的内部类 - Sync类类的内部类 - NonfairSync类类的内部类 - FairSync类类的属性类的构造函数核心函数分析 - acquire函数核心函数分析 - release函数Semaphore 示例更深入理解单独使用Semaphore是不会使用到AQS的条件队列的场…

USB4 V2.0即将发布,速度高达80Gbps

关注星标公众号&#xff0c;不错过精彩内容作者 | strongerHuang微信公众号 | strongerHuang2019年3月初&#xff0c;USB-IF组织官方宣布了下一代 USB4.2019年9月3日&#xff0c;USB-IF组织正式发布 USB4(现在称USB4 V1.0)规范。最近&#xff0c;也就是2022年9月1日&#xff0c…

推荐系统中的特征工程

摘要&#xff1a;深度学习时期&#xff0c;与CV、语音、NLP领域不同&#xff0c;搜推广场景下特征工程仍然对业务效果具有很大的影响&#xff0c;并且占据了算法工程师的很多精力。数据决定了效果的上限&#xff0c;算法只能决定逼近上限的程度&#xff0c;而特征工程则是数据与…

uniapp 之 获取底部安全距离,状态栏高度等

特定样式注意点固定底部按钮自定义顶部导航栏其他工作中我们常常需要设置一些特定样式&#xff1a; 固定底部按钮自定义顶部导航栏…… 固定底部按钮 这里需要注意的是&#xff0c;真机运行时底部时IOS是存在安全距离的&#xff0c;这个时候就需要我们处理一下 .u-fixed-b …

Echarts y轴相关配置

目录1 简介2 y轴配置2.1 y轴主要属性2.2 y轴刻度设置3.总结1 简介 本篇介绍我们在使用Echarts画图时常用的一些y轴坐标设置&#xff0c;如y轴位置&#xff0c;y轴偏移量、y轴刻度、y轴最大最小值等&#xff1b; 2 y轴配置 2.1 y轴主要属性 只有一个纵坐标的情况下&#xff0…

TLM通信总结1

事务级建模 (TLM) 用于模块之间的通信。 TLM 是实现基于事务的方法的概念,这些方法可用于模块之间的通信。 UVM TLM UVM 为 TLM 库提供事务级接口,ports,exports,imp ports,and analysis ports。所有这些 TLM 元素都需要发送事务、接收事务以及从一个组件传输到另一个组件…

STM32物联网项目-程序框架思想

程序框架思想 一、程序框架的构想 1、STM32cubeMX生成的代码与添加的应用代码分离; 2、利用STM32cubeMX重新生成代码&#xff0c;不影响应用代码; 3、应用代码的添加&#xff0c;移除与修改&#xff0c;不影响cube生成的代码; 4、代码架构方便阅读&#xff0c;编辑&#x…

领域最全!多传感器融合方法综述!(Camera/Lidar/Radar等多源异构数据)

点击进入→自动驾驶之心技术交流群 后台回复【ECCV2022】获取ECCV2022所有自动驾驶方向论文! 自动驾驶中的多传感器融合 原文:Multi-Sensor Fusion in Automated Driving: A Survey 自动驾驶正成为影响未来行业的关键技术,传感器是自动驾驶系统中感知外部世界的关键,其协作…

Java 开发中的 Lombok 是什么?

一. 血案 今天有个学生告诉我&#xff0c;他在项目中使用Mybatis框架查询时报错&#xff0c;提示无法创建对象。但自己仔细地检查了代码都没有发现错误&#xff0c;于是他就半夜拼命地给我发消息求救。 我起床拿手机&#xff0c;还差点摔倒闪了我的老腰&#xff0c;我老婆看我…

猿创征文|工作中遇到技术盲区后的自我成长

猿创征文&#xff5c;工作中遇到技术盲区后的自我成长 1、立场 我是一名python后端开发程序员&#xff0c;在一家创业公司中兢兢业业工作快两年了&#xff0c;从软件架构、开发、测试、部署、运维一手经办&#xff0c;到开发文档、API接口、开发周期、设备交付、安装完成全程…

面向对象编程原则(03)——单一职责原则

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 参考资料 《大话设计模式》 作者&#xff1a;程杰《Java设计模式》 作者&#xff1a;刘伟《图解设计模式》 作者&#xff1a;结城浩《重学Java设计模式》 作者&#xff1a;…

[论文阅读] HairGAN: Spatial-Aware Palette GAN for Hair Color Transfer

[论文地址] [代码] [ICME 22] Abstract 头发颜色转移的目的是将头发颜色从参考图像转移到原始图像&#xff0c;同时保持原始图像的头发结构。然而&#xff0c;由于复杂的头发结构以及原始图像和参考图像之间头发区域的错位&#xff0c;现有的方法不能很好地完成这一任务。为了…

CTFshow_MISC入门_图片篇(基础操作信息附加)wp

文章目录前言Tipsmisc1misc2misc3misc4misc5misc6misc7misc8misc9misc10misc11后记前言 挺长时间没有打CTF了&#xff0c;感觉技术从之前就一直没有提升多少&#xff0c;摸了段时间的渗透&护网&#xff0c;感觉CTF的基础还是比较重要&#xff0c;温故而知新&#xff0c;就…

03.thymeleaf在业务系统中的应用

thymeleaf是Java方向开源的服务端模板引擎&#xff0c;支持多种格式的格式渲染。在存前端项目盛行的年代&#xff0c;webUI纯服务端渲染已经不再适合&#xff0c;但并不影响服务端模板的继续应用。 在企业集成业务系统中&#xff0c;由于低代码平台的业务标准化/组件化/所见及…

[ Linux长征路第三篇 ] 权限理解

目录 1.root用户和普通用户相互切换 2.文件类型和访问权限(事物属性) 2.1 文件类型 2.2 基本权限 2.3 文件权限值得表示方法 1&#xff09;字符表示法 2&#xff09;8进制数值表示法 2.4 文件访问权限的相关设置方法 1) chomd 2&#xff09;三位8进制数字 3) cho…

解决找回密码不在右边的问题

问题如下: 在10.5中,按照书中代码写法为float-right,则出现上述的问题,找回密码不能和书中的结果一样呈现在右边,而出现在了左边 解决问题:把float-right改为float-end即可。其实这也不是什么大问题,不过可能会有的同学可能找不到解决方法,所以在这里写一下。因为淋过…