HDU 3530 Subsequence(单调队列)

Altium Designer20-柔性PCB绘制技巧 Altium Designer2020-柔性PCB绘制技巧 注:教程所用PCB随意找的,并没有完全绘制完,大家学习PCB折弯方法即可。 1.打开PCB,点击视图->板子规划模式1,如下图所示 2.点击设计->定义分割线,用两条分割线绘出要折弯的区域 3.点击设计->定义弯曲线(弯曲线呈现黄色) 4.用快捷键d,k进入layer manage stack(层叠管理器),在f... 阅读详情

Subsequence

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 7230    Accepted Submission(s): 2448


Problem Description
There is a sequence of integers. Your task is to find the longest subsequence that satisfies the following condition: the difference between the maximum element and the minimum element of the subsequence is no smaller than m and no larger than k.
 

Input
There are multiple test cases.
For each test case, the first line has three integers, n, m and k. n is the length of the sequence and is in the range [1, 100000]. m and k are in the range [0, 1000000]. The second line has n integers, which are all in the range [0, 1000000].
Proceed to the end of file.
 

Output
For each test case, print the length of the subsequence on a single line.
 

Sample Input
  
5 0 0 1 1 1 1 1 5 0 3 1 2 3 4 5
 

Sample Output
  
5 4
 

Source
 
题意:
找出最大的区间长度,这个区间里的最大值和最小值的差值不能小于m,不能大于k。

POINT:
维护两个单调队列。当差值大于k时,从最大值和最小值中删去靠前的那一个。

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stack>
#include <queue>
using namespace std;
const int N = 100100+4;
int a[N];
deque<int> q1;
int ans;
deque<int> q2;
int main()
{
    int n,m,k;
    while(~scanf("%d %d %d",&n,&m,&k))
    {
        int ans=0;
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&a[i]);
        }
        int last=0;//注意初值。
        while(!q1.empty()) q1.pop_front();
        while(!q2.empty()) q2.pop_front();
        for(int i=1;i<=n;i++)
        {
            while(!q1.empty()&&a[i]>=a[q1.back()]) q1.pop_back();
            while(!q2.empty()&&a[i]<=a[q2.back()]) q2.pop_back();
            q1.push_back(i);
            q2.push_back(i);
            while(!q1.empty()&&!q2.empty()&&a[q1.front()]-a[q2.front()]>k)
            {
                if(q1.front()>q2.front())
                {
                    last=q2.front();
                    q2.pop_front();
                }
                else
                {
                    last=q1.front();
                    q1.pop_front();
                }
            }
            if(!q1.empty()&&!q2.empty()&&a[q1.front()]-a[q2.front()]>=m)
            {
                ans=max(ans,i-last);
            }
        }
        printf("%d\n",ans);
    }
}



10分钟上手YOLOv11:最强姿态估计模型来了,代码开源,效果炸裂! 【10分钟玩转YOLOv11实时姿态估计】🚀 YOLOv11作为YOLO家族最新成员,在速度、精度和易用性上全面升级,尤其适用于姿态估计等复杂视觉任务。本文带您快速掌握: 1️⃣ 核心概念:姿态估计即识别人体17个关键点(如关节部位)并连接成数字骨架,是智能健身、体感游戏等应用的基础。 2️⃣ 技术优势: 超轻量级(最小仅2.9M参数) 极速推理(GPU仅1.7ms) 高精度(COCO mAP@50-95达50%) 3️⃣ 三步实操: ① 安装:pip install ultralytics ② 准备人物 阅读详情

相关推荐

泛微OA表单设计实战:如何快速实现自定义多选浏览框(附完整配置步骤)

本文详细介绍了在泛微OA中快速实现自定义多选浏览框的完整配置步骤。针对招聘提报、活动审批等需要从海量数据中规范选择多个条目的业务场景,文章从理解需求、构建数据源、设计查询页面到创建浏览框控件,提供了清晰的实战指南,帮助开发者高效解决复杂数据选择难题,提升表单操作体验。

yog99的博客 1047

HDU.3530 Subsequence(单调队列)

Subsequence Problem Description There is a sequence of integers. Your task is to find the longest subsequence that satisfies the following condition: the difference between the maximum element and the minimum element of the subsequence is no smaller than m

我很菜的好吧 707

abaqus 根据坐标施加载荷- Analytical Field 载荷映射

在一些类型的分析中,需要将按位置分布的载荷施加到结构上,比如流体分析导出了结构的气动载荷、或者温度载荷,需要将压强分布、温度分布载荷施加到固体上。这种分析可以使用abaqus中的Analytical Field实现。 1 例子 1.1 结构 一个100*100mm的面,面的载荷分布函数为p=(x2+y2)0.5/((20.5)*100) MPa,即(0, 0)的压强为0,(100, 100)的压强为1。 1.2 载荷 载荷函数:p=(x^2+y^2)^0.5/((2^0.5)*100) in exce.

shengyutou的博客 2万+

hdu 3530 "Subsequence" (单调队列)

传送门 题意:   给出一个序列,求最长的连续子序列,使得 m ≤ Max-Min ≤ k 我的理解:   定义数组 a[] 存储输入的 n 个数;   定义两个双端队列:   deque<int >qMax,qMin;   qMax : 维护前 i 个数的最大值(非递增序列);   qMin : 维护前 i 个数的最小值(非递增序列); 1 for(in...

weixin_30547797的博客 153

不用加速器!Google Earth Pro登录失败自救手册:从服务器连接到地图加载的完整排错流程

本文详细解析了Google Earth Pro登录失败的常见问题及解决方案,包括服务器连接失败、地图加载异常等。通过基础排查、内置修复工具使用和高级配置调整,帮助用户无需加速器即可解决启动问题、黑屏和转圈圈等困扰,提升软件使用体验。

weixin_29227425的博客 479

ovs实现lb负载均衡

负载均衡器的实现原理是通过硬件或软件设备将客户端访问流量根据转发策略分发到多个服务器或设备上,以确保系统的负载均衡。二层负载均衡‌:使用虚拟MAC地址方式,根据OSI模型的二层进行负载均衡。‌四层负载均衡‌:基于IP+端口的负载均衡,主要分析IP层及TCP/UDP层,实现四层负载均衡。‌七层负载均衡‌:从应用层开始,根据虚拟的URL或IP、主机名接收请求,再转向相应的处理服务器。

bobi的博客 949

[hdu3530]Subsequence 解题报告

题目大意: 给出一串数字,求出最大值减去最小值在[m,k]范围内的最长子串长度。(注意:有多组数据) 分析: 单调队列概念: 顾名思义,单调队列的重点分为 “单调” 和 “队列” “单调”指的是元素的“规律”——递增(或递减) “队列”指的是元素只能从队头和队尾进行操作(等同于stl里的deque) 原始思路:按题意模拟,然而n的范围是[1,100000],必定爆炸,所以要另辟蹊径。然后不太会...

Engels_Si_Fish的博客 1934

Springboot项目中使用邮箱验证码注册登录的代码实现

本文介绍了在Spring Boot应用中实现邮箱验证码注册和登录功能的完整方案。文章首先概述了三种用户认证方式(邮箱验证码注册/登录和传统密码登录),然后详细说明了实现所需的技术栈(Spring Boot、Spring Security、JWT等)。重点阐述了邮件服务配置、验证码生成与存储的核心实现,包括QQ邮箱授权码获取、Thymeleaf邮件模板处理以及验证码缓存管理。最后展示了发送验证码和用户注册的API实现,为开发者提供了完整的参考方案。该方案兼顾安全性和用户体验,适合现代Web应用的用户认证需求。

BXCQ_xuan的技术专栏 | 实战干货·实践教程·学习笔记 1337

杭电 HDU ACM 1159 Common Subsequence

Common Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 26493    Accepted Submission(s): 11771 Problem Description A subsequ

舒哥的blog 1151

【精细解读】xapp585(多通道LVDS接口ADC)

xapp585的参考设计有Verilog和VHDL两种源码。

FPGA艺术家的博客 531

ResNet改进(45):结合通道混洗(ShuffleNet)的混合架构

本文提出了一种创新的卷积神经网络(CNN)架构CustomResNet,它将ResNet34与通道混洗(ChannelShuffle)技术相结合。该模型通过ShuffleBlock模块替换原始ResNet层,包含三个核心组件:1) ChannelShuffle模块实现通道分组混洗;2) ShuffleBlock模块整合点卷积、分组卷积和残差连接;3) CustomResNet主模型保持ResNet整体架构但替换核心层为ShuffleBlock。这种设计既保留了ResNet的残差学习能力,又通过通道混洗增强特

2401_82355416的博客 208

HDU - 3530 Subsequence

Description There is a sequence of integers. Your task is to find the longest subsequence that satisfies the following condition: the difference between the maximum element and the minimum element

那些年 1502

YOLOv11涨点改进 | 全网创新首发、主干改进篇 | CVPR 2025 | RAVLT主干让 YOLOv11 更加强大!通过增强线性注意力机制,特别在小目标和复杂背景的检测上表现突出

本文提出RAVLT主干网络,通过改进YOLOv11的空间特征建模能力,显著提升小物体和复杂背景检测性能。RAVLT采用秩增强线性注意力(RALA)机制,在保持线性计算复杂度的同时解决传统线性注意力低秩问题。RALA通过增强KV缓冲区和输出特征矩阵的秩,提高特征多样性和建模能力。实验表明,RAVLT在ImageNet-1k上达到84.4% Top-1准确率,仅需2600万参数和4.6GFLOPs,性能优于现有线性注意力模型。文章详细介绍了RAVLT模块结构、实现原理及在YOLOv11中的集成方法,包含四种主干

Ai缝合怪、助力小伙伴高效发论文 636

HDU 3530 --- Subsequence 单调队列

HDU 3530 --- Subsequence 单调队列 Description There is a sequence of integers. Your task is to find the longest subsequence that satisfies the following condition: the difference between the m...

265

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

hdu3530 Subsequence 单调队列

// hdu3530 Subsequence 单调队列 // 题目大意:找到一个最大的子串,使得子串区间内最大值和最小值的差 // 在low和up范围内,串的规模10w。 // 解题思路: // 单调队列,单调队列可以保留i位置之前的最大值和最小值的下标,有了这些 // 则,每次我们比较两个队列的队头,看差值是否大于up,(因为它是到i位置最大 //

TIMELIMITE的专栏 1337

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

HDU3530 Subsequence【单调队列】

思路: 我们设置两个单调队列,一个维护递增,一个维护递减 记录起点加入的编号,用一个frontfrontfront来记录序列起点位置。 当递减队列队首-递增队列队首超过KKK时, 我们要比较两个队首入队的编号, 找到比较小的那一个,将frontfrontfront赋值为小的+1, 这时各队首表示的就是当前i−fronti−fronti−front段的最大值和最小值, 最后用当前i−front+1i-front+1i−front+1和答案比较。 代码: #include<algorithm> #.

JA_yichao欢迎你 cnblogs账号:https://www.cnblogs.com/mayichao/ 243

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

HDU3530 Subsequence 单调队列

HDU3530 Subsequence 单调队列 题目: 题意: 给你一个长度为n的数组,要求一段连续的子序列满足子序列中最大值减去最小值在[m,k][m,k][m,k]范围内。求该子序列的最大长度。 思路:我们假设区间右边界为iii,然后求下标[1,i][1,i][1,i]中满足最大值减去最小值在[m,k]范围内的最小左边界。我们可以用单调队列维护一个当前前缀最大值序列和最小值序列。可以用下列...

Dch19990825的博客 293

HDU 3530 Subsequence(区间最值差>=m且<=k的最大长度、双单调队列)

题目链接: HDU 3530 Subsequence 题意: 给一个长度为nn的数组,求最大的区间长度,并且这个区间满足最大值与最小值之差diff∈[m,k]diff\in[m,k],即大于等于mm,小于等于kk. 数据范围:n≤105,m,k∈[0,106]n\leq 10^5,m,k\in [0,10^6] 分析: 因为是在做单调队列的题,所以往单调队列上想可能容易点。 首先我们考

ramay7 960

Subsequence(HDU3530 单调队列)

Subsequence(HDU3530 单调队列) 题目描述 给出一个长度为n的数列,求一个最长的区间,使得区间中最小值和最大值的差在[m,k]之间 输入 有多组测试数据 对于每组测试数据,第一行三个整数n,m,k。其中n表示序列的长度,范围[1,100000],m和k以及序列中的元素范围[0,1000000] 输出 For each test case, print the length o...

1262934560的博客 351

HDU3530 Subsequence 单调队列

先附上大佬博客Orz:https://blog.youkuaiyun.com/dan__ge/article/details/51746590 http://www.itkeyword.com/doc/7101227000454544193/hdu3530-Subsequence 找数列中最长的子序列,要求最大值减去最小值大于等于m小于等于k。这道题被归到了单调队列里,但真的没想到要用两个。。之前做过几道...

A confused programmer 372

HDU-3530 Subsequence 单调队列的应用

第一个滑动窗口以外的单调队列题。。。 求一个数列中满足m <= max-min <= k的最长连续子序列的长度,n <= 1e5 思路:看到连续区间的最值,想到维护递增递减两个单调队列,max-min自然就是队首元素的差值 找到了合适的数据结构,接下来最主要的问题就是如何利用单调队列的性质避开枚举区间的起点终点 两个单调队列是从1开始维护的,但所求满足条件的最长...

aoy29758的博客 266

hdu 3530 Subsequence 单调队列

点击打开链接 // 参考http://www.cnblogs.com/programCaiCai/archive/2012/08/30/HDU3530.html //1.假设我们现在知道序列(i,j)是符合标准的,那么如果第j+1个元素不比(i,j)最大值大也不比最小值小,那么(i,j+1)也是合法的 //2.如果(i,j)不合法的原因是差值比要求小,那在(i,j)范围内的改动是无效的,需要

Masamiiiiii 498

HDU 3530 Subsequence 单调队列

Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 8797    Accepted Submission(s): 2961   Problem Description There is a sequence o...

Uniontake 253

hdu 3530 Subsequence(单调队列)

Problem Description There is a sequence of integers. Your task is to find the longest subsequence that satisfies the following condition: the difference between the maximum element and the minimum ele

HJ 778

hdu3530 Subsequence(单调队列)

题目: Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 5146    Accepted Submission(s): 1712 Problem Description There

hexiecs的技术专栏 882

HDU - 3530 Subsequence(单调队列+思维)

题目链接:点击查看 题目大意:给出一段长度为n的序列,现在给出一个m和一个k,必须满足一段连续区间内的最大值与最小值的差值大于等于m并且小于等于k,问满足条件的连续区间的最大长度 题目分析:一开始看到连续区间就想到了尺取,用尺取写了一发直接WA掉了,后来想了一下,这个题目和尺取没什么关系,因为区间内的最大值和最小值并不会因为两个指针的移动而成线性的改变,他们的变化是无规律的,所以更不能二分了(...

Falcon的博客 527
上一篇: Codeforces Round #428 (Div. 2) - D Winter is here
下一篇: HDU 3415 Max Sum of Max-K-sub-sequence(单调队列+最大连续子串和)
Mr_Treeeee
博客等级 码龄10年 38粉丝 551原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值