二分模板-数的范围

Win10网络图标消失,网络图标变成灰色,打开网络设置闪退等问题解决 介绍 主要解决如下问题 网络图标消失 常用方法配置中出现的网络图标变成灰色没有办法打开 打开网络和Internet闪退 错误提示`网络发现已关闭。网络计算机和设备不可见。请启动网络和共享中心的网络发现。 连不上网,诊断结果为 依赖服务或组无法启动 这个问题大概率通过重装系统不能解决,请大家谨慎测试之后最后选择重装这个路线。 方法1:这一步一定要做(卸载三方软件) 把360安全卫士,软件管家这些东西都卸载掉。 我的问题一开始就是这个软件引起的,可能他检测到我还给台式机配了无线网卡,然后就把有线网络的一些 阅读详情
#include<iostream>
using namespace std;

//对于一个从小到大有序的数组而言,左边的值是小于等于右边的;同理,右边的值是大于等于左边的 
int main(){
	int n, q; cin >> n >> q;
	int a[n + 5];
	for(int i = 0; i < n; i ++) scanf("%d", &a[i]);
	while(q --){
		int k; scanf("%d", &k);
		int l = 0, r = n - 1;
		//如何找到左端点L?
			// -> L的位置是k出现的第一个位置即可 -> [0, L-1]区间的元素全部小于k
		//如何让[0, L-1]区间的元素全部都小于k? 
			// -> 通过中间位置的值来判断 -> 如果a[mid] < k, 此时的mid一定是位于最终L位置的左边 -> 只需让l进行移动, l = mid + 1
			// -> 如果存在K,最终l一定会移动到L的位置 
		//the while floop below can find the first site of K  
		while(l < r){
			int mid = (l + r) >> 1;
			if(a[mid] >= k) // mid在k的右边 ->  要往左找 -> 将右边的区间舍去 
							// mid及其左边包含值为k的元素 -> k 属于[l, mid] 区间 -> r = mid
							//为什么不能说mid+1及其右边不包含值为k的元素, 因为a[mid+1]可能等于k,但是要找左端点所以被舍去了,后面的都同理 
				r = mid;
			else // a[mid] < k -> mid在k的左边 -> 要往右找 -> 将左边的区间舍去
							// mid + 1及其右边包含值为k的元素 -> k属于[mid + 1, r] -> l = mid + 1; 
				l = mid + 1;
		}
		if(a[l] != k) { //左边边界没有找到 -> 不存在这个元素 -> 可以直接continue了 
			printf("-1 -1\n");
			continue;
		}
		printf("%d ", l);
		l = 0, r = n - 1;
		//如何找到右端点R?
			// -> R的位置是k出现的最后一个位置即可 -> [R+1, n-1]区间的元素全部大于k
		//如何找到[R+1, n-1]区间?
			// -> 同样通过中间位置的值来判断 -> 如果a[mid] > k, 此时的mid一定是位于最终R位置的右边 -> 只需让r进行移动,r = mid - 1
			// ->存在k,最终r一定会移动到R的位置  
		while(l < r){
			int mid = (l + r + 1) >> 1;
			if(a[mid] <= k) //mid在k的左边 -> 往右找 ->将左边的区间舍去
							//mid及其右边包含值为k的元素 ->k属于[mid, r]区间 -> l = mid
				l = mid; 
			else//a[mid]>k -> mid在k的右边 ->往左找 -> 将右边的区间舍去
							//mid - 1及其左边包含值为k的元素 -> k属于[l, mid - 1]区间 -> r = mid - 1
				r = mid - 1; 
		}
		printf("%d\n", r);
		
	}
	return 0;
}
//不明白为什么要让a[mid] < k or a[mid] > k?
//那么我们假设a数组中存在多个k值,并且最左端是a[L],最右端是a[R]
//现在我们需要找到最左端的位置,也就是说,a{L-1]要小于k,假设mid = L-1,那么可以推理出a[mid] < k 
//同理,a[R + 1] > k, 假设mid = R + 1, a[mid] > k 

YOLOv11改进 | Conv篇 | DWRSeg扩张式残差助力小目标检测 (附创新修改后的C3k2DWRSeg) 本文内容给大家带来的DWRSeg中的DWR模块来改进YOLOv11中的C2f和Bottleneck模块,主要针对的是小目标检测,主要创新点可以总结如下:多尺度特征提取机制的深入研究和创新的DWR模块和SIR模块的提出这种方法使得网络能够更灵活地适应不同尺度的特征,从而更准确地识别和分割图像中的物体。DWRSeg的基本原理和框架,并且能够在你自己的网络结构中进行添加DWRSeg需要增加一定的计算量一个DWR模块大概增加0.4GFLOPsYOLOv11改进系列专栏——本专栏持续复习各种顶会内容——科研必备。 阅读详情

相关推荐

第18届全国大学生智能汽车竞赛四轮车开源讲解【2.5】-- 图像处理实战:从二值化到边缘检测的工程优化

本文深入讲解了第18届全国大学生智能汽车竞赛四轮车开源项目中图像处理的核心实战技术。文章聚焦于二值化与边缘检测两大关键环节,详细对比了大津法与索贝尔算子的工程应用与优化策略,并分享了遮光、偏振片等物理抗干扰技巧,旨在帮助参赛者构建稳定高效的图像预处理流水线,为赛道识别奠定坚实基础。

weixin_29279047的博客 101

二分查找(整数)

题目: 输入样例: 6 3 1 2 2 3 3 4 3 4 5 输出样例: 3 4 5 5 -1 -1 找第一次出现k值的位置: int l=0,r=n-1; while(l<r) { int mid=l+r>>1; if(a[mid]>=k)r=mid; else l=mid+1; } 找最后一次出现k值的位置: l=0,r=n-1; while(l<r) { int mid=l+r+1>>1; if(a[mid]<=k)l=mid; els

m0_60274443的博客 204

使用下一代的嵌入式IDE-PlatformIO 教程

1.生成工程 1.1 打开STM32CubeMX: 选择你的MCU,这里我用的是STM32F103RC RCC中开启外部HSE时钟,外部时钟比HSI更稳定些 开启DEBUG 4线 打开串口1用于打印调试信息,波特率115200,校验位0,停止位1 打开串口2用于MODBUS协议,波特率9600,校验位0,停止位1 接入RT-thread:参考官方文档 基于 CubeMX 移植 RT-Thread Nano 根据官方文档,需要1.取消生成HardFault_Handler、PendSV_Handler、Sy

jiladahe1997的博客 3万+

二分模板——数的范围

789. 数的范围 先用二分求出x的左边界——a[mid] >= x(mid在x的右边,所以右边界变为mid) 即: if(a[mid] >= x) r = mid; else l = mid + 1; 根据模板得出mid mid = l + r >> 1; 若得出的左边界值不为x,则满足x不存在与数组中,输出“-1 -1” 若等于x,二分求右边界——a[mid] <= x(mid在x的左边,所以左边界变为mid) 即: if(a[mid] <= x

ZVAF_的博客 248

销售预测的方法与模型(三)丨安全库存与再订货(补货)

较高的 Z 值对应较高的服务水平(例如,服务水平 99% 对应 Z 值 2.33),意味着企业希望更低的缺货风险,因此需要更高的安全库存。在再订货点的管理中,考虑到供应商交货的不确定性,通常需要结合安全库存,以防止在交货期间库存用尽。要对L开根号,根号L表示交货周期越长,企业需要的安全库存越多,因为在较长的供应期内,需求波动的累积效应更明显。举例:供应商的交期服从标准差为2件/天的正态分布,顾客需求为50件/天的正态分布,若要客户服务水平达到 90%,安全库存量应该是多少?下面介绍几种核心的模型与公式。

weixin_45675709的博客 1537

使用 DEM 模拟金属烧结过程

了解离散元素法 (DEM) 如何彻底改变烧结工艺,提高制造业的效率和精度。

jkh920184196的博客 1129

ACM算法训练【数的范围·二分模板】

【代码】ACM算法训练【数的范围·二分模板】

大河之犬的博客 570

20、自定义用户窗体:从创建到使用

本文详细介绍了在Excel VBA中创建和使用自定义用户窗体的完整过程,涵盖从窗体设计、控件添加与属性设置,到事件处理程序编写及宏调用的各个环节。通过实际示例讲解了如何实现文本大小写转换和员工信息录入等功能,并深入解析了常用控件的属性与事件机制。同时提供了控件命名规范、快捷键使用、布局技巧等实用建议,帮助读者构建高效、交互性强的VBA用户界面。

h0i1j2k3l的博客 132

数的范围(二分模板题)

对于每个查询,返回一个元素 k 的起始位置和终止位置(位置从 0 开始计数)。给定一个按照升序排列的长度为 n 的整数数组,以及 q 个查询。//将求左右边界转化为二分模板的向上和向下取整。如果数组中不存在该元素,则返回 -1 -1。

2302_80711135的博客 330

OsgEarth开发笔记(三):Osg3.6.3+OsgEarth3.1+vs2019x64开发环境搭建(下)

上一篇编译了proj6.2.0、gdal3.2.1,本篇继续。 OsgEarth的编译,是基于Osg和OsgEarth结合在一起的,先要编译Osg,然后编译OsgEarth。OsgEarth的依赖库较多,分为上、中、下三篇,然后单独有一篇如何将编译好的osgEarth集成到Qt中。

长沙红胖子 Qt・西安|省级科研团队从业背景,深耕双一流体系高精尖技术配套研发|剥离高精尖机理,沉淀高端特种行业领域 Qt 工程化落地经验|博文仅分享通用技术总结,输出公开普适工程思路。 4万+

【人工智能的数学基础】最优传输(Optimal Transport)问题与Wasserstein距离

代表两堆石子,则问题等价于如何移动一堆石子,通过最小的累积移动距离把它堆成另外一堆石子。的不同位置分配的值。为离散型概率分布,则该优化问题可以表示为矩阵形式。表示寻找总运输成本最小的方案。放大后的上确界不会小于原来的上确界,因此不妨取。具有相同的概率分布。是概率分布,因此积分可以写作采样形式。描述了一种可行的运输方案,表示应该从位置。则最优传输问题的目标函数可以用列向量。对于一个线性规划问题,总可以写出其。的所有可能联合分布的集合,下确界。其中矩阵的每一行代表概率分布。表示寻找使得目标函数最大的。

AI天才研究院 6330

ACWING - 数的范围 (二分模板)

数的范围 题目大意:给一个升序排列的数组,然后q次询问,问x这个数第一次和最后一次出现的位置。 解题思路:两种方法 标准二分 或者 lower_bound&&upper_bound 都可以。 这是一个二分模板 二分: #include<iostream> #include<algorithm> using namespace std; const int maxn=1e5+10; int a[maxn]; int main(){ ios::sync_wit

林黛玉到拔垂杨柳的博客 274

《MATLAB项目实战》,专栏目录和介绍

MATLAB 是一款强大且广泛应用的数值计算和数据可视化软件工具,它提供了一个高效、简洁的编程环境,使用户能够进行从简单的矩阵运算到复杂的多维数据分析的各种计算任务。无论是在人工智能、计算机视觉、图像处理还是其他领域,MATLAB 都能够提供精准、快速的解决方案,因此成为了全球科研人员、工程师以及数据分析师的得力工具。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 6478

数的范围(二分模板)

题目 给定一个按照升序排列的长度为n的整数数组,以及 q 个查询。 对于每个查询,返回一个元素k的起始位置和终止位置(位置从0开始计数)。 如果数组中不存在该元素,则返回“-1 -1”。 输入格式 第一行包含整数n和q,表示数组长度和询问个数。 第二行包含n个整数(均在1~10000范围内),表示完整数组。 接下来q行,每行包含一个整数k,表示一个询问元素。 输出格式 共q行,每行包含两个整数,表示所求元素的起始位置和终止位置。 如果数组中不存在该元素,则返回“-1 -1”。 数据范围 1≤n≤100000

qq_44784918的博客 191

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

数的范围(二分模板)

数的范围 题目链接 给定一个按照升序排列的长度为n的整数数组,以及 q 个查询。 对于每个查询,返回一个元素k的起始位置和终止位置(位置从0开始计数)。 如果数组中不存在该元素,则返回“-1 -1”。 输入格式 第一行包含整数n和q,表示数组长度和询问个数。 第二行包含n个整数(均在1~10000范围内),表示完整数组。 接下来q行,每行包含一个整数k,表示一个询问元素。 输出格式 共q行,每行包含两个整数,表示所求元素的起始位置和终止位置。 如果数组中不存在该元素,则返回“-1 -1”。 数据范围 1≤n

weixin_47701814的博客 160

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

789. 数的范围 - 二分模板

789. 数的范围 给定一个按照升序排列的长度为n的整数数组,以及 q 个查询。 对于每个查询,返回一个元素k的起始位置和终止位置(位置从0开始计数)。 如果数组中不存在该元素,则返回“-1 -1”。 输入格式 第一行包含整数n和q,表示数组长度和询问个数。 第二行包含n个整数(均在1~10000范围内),表示完整数组。 接下来q行,每行包含一个整数k,表示一个询问元素。 输出格式 共q行,每行包含两个整数,表示所求元素的起始位置和终止位置。 如果数组中不存在该元素,则返回“-1 -1”。 数据范围 1≤n

马丘 182

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

二分模板:查找数的范围、数的三次方根

内容摘自ACWING,一个很好的算法学习平台。

sand_wich的博客 416

洛谷 U411986 数的范围(二分模板)

这里注意到模板中mid的取值是(l+r+1)/2,而不是(l+r)/2,是因为mid的取值是向下取整的,当l和r只相差1时,mid=(l+r)/2就等于(2*l+1)/2=l,如果此时需要更新的是区间左端点l,那么l=mid操作一通后,l的值还是原来的值,会导致死循环。1)lower_bound函数:用来寻找边界点B,即是在区间[B, n-1]中,所有元素都满足同一个性质的最。所以把mid的值设置为(l+r+1)/2,这样分区间时还是可以视为是对半分的,还可以避免死循环。

Just One Last Coding~♬ 849

789. 数的范围_二分模板题

789. 数的范围 找x的左端点:x的左端点的左边的数都是严格小于x的,x的左端点右边的数都是严格大于x的,所以根据a[mid] >=x来找x的左端点 如果是a[mid] >= x 说明 x在mid的右边,mid在x的左边,区间需要向左偏移,而且a[mid]是可能等于x的,所以r=mid。else 也就是a[mid] < x 则l=mid+1 找x的右端点:x的右端点左边的数都小于等于x,右边的数都严格大于x,所以根据a[mid] <= x 来找x的左端点 如果是a[

qq_45895217的博客 350

数的范围 两种二分模板

用两种二分先找第一个x的位置再找第二个x的位置。

zaqjkl的博客 254

789. 数的范围 【整数二分模板】

题目 给定一个按照升序排列的长度为 n 的整数数组,以及 q 个查询。 对于每个查询,返回一个元素 k 的起始位置和终止位置(位置从 0 开始计数)。 如果数组中不存在该元素,则返回 -1 -1。 输入格式 第一行包含整数 n 和 q,表示数组长度和询问个数。 第二行包含 n 个整数(均在 1∼10000 范围内),表示完整数组。 接下来 q 行,每行包含一个整数 k,表示一个询问元素。 输出格式 共 q 行,每行包含两个整数,表示所求元素的起始位置和终止位置。 如果数组中不存在该元素,则返回 -1 -1。

午夜的行人 131

整数二分模板题----数的范围

数的范围 题目:数的范围 描述:给定一个按照升序排列的长度为 n 的整数数组,以及 q 个查询。对于每个查询,返回一个元素 k 的起始位置和终止位置(位置从 0 开始计数)。如果数组中不存在该元素,则返回 -1 -1。 思路: 典型的二分模板题, 先找左边第一个目标数字([l,mid],[mid+1,r],mid不用+1), 再找右边第一个目标数字([l,mid-1],[mid,r],mid需要+1) 代码如下: #include <iostream> using namespace

qq_41420788的博客 320

【题解】数的范围(二分模板)

L+ 1R。

m0_74758366的博客 444

789. 数的范围题解和二分模板解释

先给上题目链接 https://www.acwing.com/problem/content/791/ 然后是两种的二分模板代码 bool check(int x) {/* ... */} // 检查x是否满足某种性质 // 区间[l, r]被划分成[l, mid]和[mid + 1, r]时使用: int bsearch_1(int l, int r) { while (l < r) { int mid = l + r >> 1; if

陌养的编程之路 156

[AcWing]789. 数的范围(C++实现)二分模板题

[AcWing]789. 数的范围(C++实现)模板题1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结 1. 题目 2. 读题(需要重点注意的东西) 思路:整数的二分查找 3. 解法 ---------------------------------------------------解法---------------------------------------------------: #include <iostrea

cloud的博客 505

【ACwing】一、二分:整数、小数二分模板+789. 数的范围+790. 数的三次方根

文章目录(1)整数二分(2)小数二分(3) (1)整数二分 (2)小数二分 (3)

qq_46126258的博客 746
上一篇: STP生成树协议
下一篇: Web大作业实录Day1
Ayu阿予
博客等级 码龄5年 456粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ayu阿予

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值