查找

题源怎么写着递归那么的步履蹒跚呢

题目描述

输入 n 个不超过 10^9 的单调不减的(就是后面的数字不小于前面的数字)非负整数 a1​,a2​,…,an​,然后进行 m 次询问。对于每次询问,给出一个整数 q,要求输出这个数字在序列中第一次出现的编号,如果没有找到的话输出 −1 。

输入格式

第一行 2 个整数 n 和 m,表示数字个数和询问次数。

第二行 n 个整数,表示这些待查询的数字。

第三行 m 个整数,表示询问这些数字的编号,从 1 开始编号。

输出格式

输出一行,m 个整数,以空格隔开,表示答案。

输入输出样例

输入 #1复制

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

输出 #1复制

1 2 -1 

说明/提示

数据保证,1≤n≤10^6,0≤ai​,q≤10^9,1≤m≤10^5

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

 

#include<bits/stdc++.h>
using namespace std;
int n,m,mid;
int minn=1000000009;
long long a[1000008]={0},t=0;
void dfs(int t,int L,int R){if(L>R){if(minn<1000000009){cout<<minn<<" " ;return ;}else {cout<<-1<<" ";return;}}if(t==a[mid]){minn=min(minn,mid);}if(t>a[mid]){int tmp=mid+1;mid=(tmp+R)/2;dfs(t,tmp,R);//右半部分 }if(t<=a[mid]){//需要取到最左边,要等于 int tmp1=mid-1;mid=(L+tmp1)/2;dfs(t,L,tmp1);//左边部分 }
}//int dfs( int l, int r, int t)//这种写法的也完全可以的
//{
//	if (l == r)
//	{
//		if (a[l] == t)
//			return l;
//		else
//			return -1;//最后位置的数与待查询数不相等,说明数列里没有此数
//	}
//	int mid = (l + r) / 2;
//	if (t <= a[mid])
//		dfs(a, l, mid, t);//在左边区域找
//	else
//		dfs(a, mid + 1, r, t);//在右边区域找
//}int main()
{cin>>n>>m;for(int i=1;i<=n;i++){cin>>a[i];}for(int i=1;i<=m;i++){cin>>t;mid=(n+1)/2;minn=1000000009;//每一次这个位置都需要重新赋值一哈 dfs(t,1,n);
//		cout<<minn<<" ";}return 0;
}

 

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

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

相关文章

三菱数据类型

有符号16位整数型int 取值范围-32768~32767 表示方式K(如K2) 无符号位的16位整数型word 取值范围0~65535 表示方式K(如K2) 有符号位的32位整数型DINT-214783648~2147483647 表示方式K(如K2) 无符号位的32位整数型DWORD0到4,294,967,295 表示方式K(如K2) 浮点数使用E表示&am…

代码随想录算法训练营第30天|LeetCode236.二叉树的最小公共祖先

代码随想录算法训练营第30天|LeetCode236.二叉树的最小公共祖先 1、LeetCode236.二叉树的最小公共祖先 236. 二叉树的最近公共祖先 - 力扣&#xff08;LeetCode&#xff09; 自底向上查找&#xff0c;有点难度&#xff01; | LeetCode&#xff1a;236. 二叉树的最近公共祖先_哔…

layui框架实战案例(26):layui-carousel轮播组件添加多个Echarts图标的效果

在Layui中&#xff0c;使用layui-carousel轮播组件嵌套Echarts图表来实现多个图表的展示。 css层叠样式表 调整轮播图背景色为白色&#xff1b;调整当个Echarts图表显示loading…状态&#xff1b;同一个DIV轮播项目添加多个Echarts的 .layui-carousel {background-color: #f…

Android开发之View Binding全面解析

引言 在安卓开发中&#xff0c;视图绑定是一个关键的步骤&#xff0c;它允许开发者将布局文件中的视图组件与Activity或Fragment中的成员变量关联起来。这一机制不仅使得UI操作更加便捷&#xff0c;而且提高了开发效率。本文主要探讨了安卓开发中的一项重要技术——View Bindin…

【Qt】使用Qt实现Web服务器(十):前端基础

1、简述 本人对HTML元素不熟悉,利用QtWebApp加载静态页面来熟悉下HTML元素。 2、测试代码 # a)main中创建 HttpListener new HttpListener(listenerSettings,new RequestMapper(&app),&app);#

js教程(11)

一、Window对象 1.BOM&#xff08;浏览器对象模型&#xff09; BOM&#xff08;Browser Object Model&#xff09;是JavaScript中用来与浏览器交互的一组对象。BOM提供了访问和控制浏览器窗口、历史记录、定时器、以及与浏览器进行通信的能力。 BOM包括以下一些常用的对象&…

【Rust】——生命周期

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

PyQt6猜数字小游戏

PyQt6猜数字小游戏 本文使用pyQt6实现猜数字小游戏。游戏开始给出数字范围&#xff0c;猜测失败缩写给定范围。 import math import sys import random from PyQt6.QtWidgets import QMainWindow, QApplication, QMessageBox from PyQt6.QtCore import Qt from sample import U…

AI 在医疗保健领域的应用:技术、趋势和前景

人工智能&#xff08;AI&#xff09;在医疗保健领域的应用已经成为引人瞩目的发展方向&#xff0c;其在医学影像分析、疾病诊断和个性化治疗等方面展现出了巨大潜力。本文将深入探讨这些技术应用和未来的发展趋势。 医学影像分析 医学影像分析是AI在医疗领域中应用最广泛的领…

Redis 缓存雪崩、穿透、击穿、预热

在实际工程中&#xff0c;Redis 缓存问题常伴随高并发场景出现。例如&#xff0c;电商大促、活动报名、突发新闻时&#xff0c;由于缓存失效导致大量请求访问数据库&#xff0c;导致雪崩、击穿、穿透等问题。因此&#xff0c;新系统上线前需预热缓存&#xff0c;以应对高并发&a…

文献阅读:将条形码神经解剖学与空间转录分析相结合,可以识别投射神经元相关基因

文献介绍 「文献题目」 Integrating barcoded neuroanatomy with spatial transcriptional profiling enables identification of gene correlates of projections 「研究团队」 Anthony M. Zador&#xff08;美国冷泉港实验室&#xff09; 「发表时间」 2021-05-10 「发表期…

# #一眼就解密

BUUCTF #一眼就解密 1 下面的字符串解密后便能获得flag&#xff1a;ZmxhZ3tUSEVfRkxBR19PRl9USElTX1NUUklOR30 注意&#xff1a;得到的 flag 请包上 flag{} 提交 flag{THE_FLAG_OF_THIS_STRING}

MPLS-基础、LSR、LSP、标签、体系结构

MPLS技术 MPLS基础 MPLS&#xff1a;转发数据时&#xff0c;只在网络边缘分析IP报文头&#xff0c;不在每一跳都分析&#xff0c;节约了转发时间。 MPLS&#xff1a;Multiprotocol Label Switching&#xff0c;多协议标签交换骨干网技术。主要应用&#xff1a;VPN、流量工程…

Golang学习系列1-pprof性能调优

1. pprof 简述 一位亦师亦友的话让我记忆犹新&#xff0c;他说“学习一个新事务&#xff0c;应该从三个方面入手what,why,how;且三者的重要程度应该是递减”。所以在本文的第一部分先叙述下pprof的what & why。 1.1 What&#xff1f; pprof是golang自身提供的一种性能分…

【C++入门】初识C++

&#x1f49e;&#x1f49e; 前言 hello hello~ &#xff0c;这里是大耳朵土土垚~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#x…

稀疏矩阵的三元组表表示法及其转置

1. 什么是稀疏矩阵 稀疏矩阵是指矩阵中大多数元素为零的矩阵。 从直观上讲&#xff0c;当元素个数低于总元素的30%时&#xff0c;这样的矩阵被称为稀疏矩阵。 由于该种矩阵的特点&#xff0c;我们在存储这种矩阵时&#xff0c;如果直接采用二维数组&#xff0c;就会十分浪费…

开启 Keep-Alive 可能会导致http 请求偶发失败

大家好&#xff0c;我是蓝胖子&#xff0c;说起提高http的传输效率&#xff0c;很多人会开启http的Keep-Alive选项&#xff0c;这会http请求能够复用tcp连接&#xff0c;节省了握手的开销。但开启Keep-Alive真的没有问题吗&#xff1f;我们来细细分析下。 最大空闲时间造成请求…

C++Date类的实现

目录 前言&#xff1a; 1.显示日期 2.构造函数与获取某年某月的日期的函数 3.日期比较 4.日期加减天数 5.日期减日期 6.前置后置与-- 7.完整代码 8.测试 总结&#xff1a; 感谢支持&#xff01; 前言&#xff1a; 结合了前面的内容的学习&#xff0c;本篇来对之前的…

基于php医院预约挂号系统

摘 要 随着信息时代的来临&#xff0c;过去的管理方式缺点逐渐暴露&#xff0c;对过去的医院预约挂号管理方式的缺点进行分析&#xff0c;采取计算机方式构建医院预约挂号系统。本文通过阅读相关文献&#xff0c;研究国内外相关技术&#xff0c;开发并设计一款医院预约挂号系统…

语义分割交互式智能标注工具 | 澳鹏数据标注平台

随着人工智能应用的大规模落地&#xff0c;数据标注市场在高速增长的同时&#xff0c;也面临着标注成本的挑战。据IDC报告显示&#xff1a;数据标注在AI应用开发过程中所耗费的时间占到了25%&#xff0c;部分医学类应用一条数据的标注成本甚至高达20元。数据精度的高要求、强人…