当前位置: 首页 > news >正文

问题 E: 起止位置(C++)(二分查找)

目录

1.题目描述

2.AC


1.题目描述

问题 E: 起止位置

时间限制: 1.000 Sec  内存限制: 128 MB
提交 状态

题目描述

有n位同学按照年龄从小到大排好队。
王老师想要查询,年龄为x的同学,在队伍中首次出现的位置和最后一次出现的位置;如果队伍中不存在年龄为x的同学,请输出-1。
由于人数太多,一个一个数,太慢啦,请你编程求解。
请注意:本题中王老师查询年龄x出现的起止位置,并不是查询了1次,而是查询了q次。
比如:
假设有6位同学的年龄为:1 2 2 2 3 3,王老师查询了4个年龄,分别是2 1 3 8,那么:
年龄为2的同学首次和最后一次出现的位置分别是:2 4;
年龄为1的同学首次和最后一次出现的位置分别是:1 1;
年龄为3的同学首次和最后一次出现的位置分别是:5 6;
年龄为8的同学首次和最后一次出现的位置分别是:-1 -1;

输入

第一行包含整数n和q,表示队伍中的总人数和询问个数。
第二行包含n个整数(均在1~10000范围内),表示队伍中每个人的年龄。
接下来q行,每行包含一个整数x,表示一次询问的值。

输出

共q行,每行包含两个整数,表示所求年龄在队伍中的起始位置和终止位置。
如果数组中不存在该元素,则返回"-1 -1"。
数据范围
1≤n≤100000
1≤q≤10000
1≤x≤10000

样例输入 Copy

6 3
1 2 2 2 3 3
2
1
8

样例输出 Copy

2 4
1 1
-1 -1

2.AC

#include <iostream>
#include <cstdio>
using namespace std;
int n, q;
int a[100005];
int main () {scanf("%d%d", &n, &q);for (int i = 1; i <= n; i++) {scanf("%d", &a[i]);}for (int i = 1; i <= q; i++) {int x;scanf("%d", &x);int l = 1, r = n;while (l < r) {int mid = l + (r - l) / 2;if (x > a[mid]) {l = mid + 1;} else if (x <= a[mid]) {r = mid;}}if (a[r]==x) printf("%d", r);else printf("-1");printf(" ");l = 1, r = n;while (l <= r) {int mid = l + (r - l) / 2;if (x >= a[mid]) {l = mid + 1;} else if (x < a[mid]) {r = mid - 1;}}if (a[r]==x) printf("%d", r);else printf("-1");printf("\n");}
}

http://www.lryc.cn/news/67421.html

相关文章:

  • 【sop】基于灵敏度分析的有源配电网智能软开关优化配置[升级1](Matlab代码实现)
  • LeetCode周赛复盘(第345场周赛)
  • Call for Papers丨第三届GLB@KDD‘23 Workshop
  • 【多线程】单例模式
  • 7搜索管理
  • 在Pytorch中使用Tensorboard
  • [笔记]深入解析Windows操作系统《四》管理机制
  • 【小沐学Python】Python实现在线英语翻译功能
  • k8s中pod使用详解
  • 案例说明:vue中Element UI下拉列表el-option中的key、value、label含义各是什么
  • idea创建javaweb项目步骤超详细(2022最新版本)
  • 「SAP ABAP」OPEN SQL(六)【DELETE语句 | MODIFY语句】
  • SpringCloud --- Feign远程调用
  • 基于单片机的数字频率计设计
  • 我看看哪个靓仔还没把Github Copilot用起来?
  • C++系列一: C++简介
  • 信通初试第一:无科研无竞赛一战上岸上海交大819学硕感悟
  • Spring —— Spring Boot 配置文件
  • Python 网络爬虫与数据采集(一)
  • 2023年6月DAMA-CDGP数据治理专家认证请尽快报名啦!
  • STM32+esp8266,让你的STM32开发板连接网络-----esp8266
  • 分布式缓存的基础知识
  • Vue3通透教程【七】生命周期函数
  • 《“裸奔”时代的网络防护:如何保护你的隐私和数据安全》
  • mapreduce优化方法
  • 06-nexus搭建Docker私仓
  • 【RS专题】eval层混淆和逻辑完整分析 - 扣代码终结篇
  • 基于matlab使用主动声纳系统进行水下目标检测
  • [socket]hpsocket-pull模式
  • 数据分析师 ---- SQL强化(3)