Subsequence hdu3530

MATLAB基础应用精讲-【数模应用】PPO算法(附python代码实现)(二) 表示为状态转移概率和动作选择概率的乘积,因为状态和动作决定轨迹。 阅读详情
题意:给你一个长度为n的数列,要求一个子区间,使得区间的最大值与最小值的差s满足,

m<=s<=k,求满足条件的最长子区间


分析:用两个队列来分别维护最大值和最小值,作为判断条件,如果差值大于k了,就去掉较前面的那个队列元素,并把区间头更新为它的标号+1,

这里注意差值小于m并不需要去掉元素,还有更新答案时要先判断是否满足条件才能更新。


#include<stdio.h>
#include<string.h>
#include<algorithm>
#define nn 100005
using namespace std;
int a[nn],qmax[nn],qmin[nn];
int main()
{
    int n,m,k;
    while(scanf("%d%d%d",&n,&m,&k)!=EOF)
    {
        int i,l=0,ans=0,ls=0,lm=0,rs=0,rm=0;
        for(i=1;i<=n;i++)
        {
            scanf("%d",&a[i]);
            while(ls<rs&&a[qmin[rs-1]]>a[i]) rs--;
            while(lm<rm&&a[qmax[rm-1]]<a[i]) rm--;
            qmin[rs++]=i;
            qmax[rm++]=i;
            if(a[qmax[lm]]-a[qmin[ls]]>k)  //如果不满足小于K条件,更新,使i值小的,也就是在前面的被删除
            { //不用考虑<m的情况,因为在前面都满足Max-Min>=m的情况下,加入的点
                if(qmin[ls]>qmax[lm])         //要更新Max,只能比Max大,要更新Min,只能比Min小,所以一定成立,不用考虑
                {
                    l=qmax[lm];
                    lm++;
                }
                else
                {
                    l=qmin[ls];
                    ls++;
                }
//                l=(qmin[ls]<qmax[lm]?qmin[ls++]:qmax[lm++]);
            }
            if(a[qmax[lm]]-a[qmin[ls]]>=m)  //在满足条件的里面选最优,即最长的
            {
                ans=max(ans,i-l);
            }
        }
        printf("%d\n",ans);
    }
    return 0;
}

Python代码加密与发布方案详解 本文详细介绍了多种Python代码保护方案,从基础加密到高级混淆,以及商业化发布的最佳实践。基础加密方案包括编译为字节码和使用PyArmor基础加密,适合临时保护和小项目。商业级加密方案如Cython编译和Nuitka完整打包,提供更高的保护强度和执行效率。高级混淆方案涉及控制流混淆、字符串加密和完整混淆工具链,进一步增加逆向难度。商业化发布方案则强调许可证系统集成、硬件绑定保护和完整发布流程。此外,文章还探讨了反逆向技术、最佳实践建议和常见问题解决方法。通过组合使用这些技术,可以构建出适合不同安全需求的P 阅读详情

相关推荐

嘉立创EDA vs Altium Designer:新手如何选择?从界面到实战全对比

本文全面对比了嘉立创EDA与Altium Designer(AD)两大PCB设计工具,从设计哲学、界面交互、封装库管理、设计规则引擎、协作功能到成本生态六大维度进行深入分析。嘉立创EDA以极简设计和云端协作为特色,适合学生和创客快速上手;而AD则凭借专业级精准控制,成为高端电子设计的行业标准。通过实战案例和详细对比表格,帮助新手根据项目需求选择合适的EDA工具。

weixin_30296405的博客 720

数组中最长的区间,满足该区间内的数排序后是连续的。

数组中最长的区间,满足该区间内的数排序后是连续的。比如,[23, 4,1,3,2,9,8,24] 4,1,3,2 是最长区间,是连在一起的。[23, 1,3,2,9,4,8,24] 就只能返回1,2,3了。 这里考虑到数组没有重复的,如果数有重复的话,目前还没有想到好的方法。 应该有更好的算法,救大神指教 从x0开始,找length=|x0-x1|+1内的max和min,

wangtengqiang的专栏 1229

MediaPipe实战:从零构建人脸关键点检测应用

本文详细介绍了如何使用Google的MediaPipe框架从零构建一个实时人脸关键点检测应用。文章深入剖析了MediaPipe的三段式检测流水线,提供了Android平台的完整实战教程,包括环境配置、模型加载、摄像头集成、关键点绘制以及性能调优指南,帮助开发者快速实现高效、跨平台的人脸AR特效与交互功能。

weixin_29100927的博客 341

leetcode525+01数目相同的最长子数组区间

https://leetcode.com/problems/contiguous-array/description/ //子数组之和跟结尾位置的坐标之间的映射 class Solution { public: int findMaxLength(vector&lt;int&gt;&amp; nums) { int res = 0, n = nums.size(), s...

小堃哥的专栏 1434

PySpark机器学习生产化陷阱:跨节点依赖问题的7种解决方案

隐式依赖陷阱使用ldd解决方案:在基础镜像中预装和路径冲突终极解法依赖树瘦身技巧用conda-tree可减少40%环境体积PySpark机器学习生产化的核心矛盾在于分布式环境的确定性与灵活性不可兼得。轻量级方案(1-3)牺牲一致性换取灵活性重量级方案(4-6)牺牲灵活性换取确定性混合方案(7)针对特殊场景补充正如某AI平台架构师所言:“环境一致性不是技术问题,而是工程纪律问题选择适合团队当前阶段的方案,建立严格的依赖管理流程,才能让PySpark真正扛起生产环境的大旗。

datacanvas2426的博客 909

Windows 11 的C盘User(用户)文件夹下的用户文件夹名称的修改

背景介绍:由于系统重装导致Windows 11的系统用户名与C盘User(用户)文件夹下的用户名文件夹(公用文件夹旁边的文件夹)出现名称不一致,事例中系统用户名命名为“寂萧”,User(用户)文件夹下的文件夹名称却是“77555”。【QQ邮箱前五位真的真的看着很别扭】注:改名有风险,三思而后行。User(用户)文件夹下的用户名是中文在某些软件的应用场景下产生不便,导致很多软件莫名其妙报错,甚至无法使用,笔者不建议修改为中文名。//和笔者一样的强迫症除外//

2302_79084172的博客 10万+

面试算法总结系列——尺取法的应用,滑动窗口

最近准备笔试的过程中,发现好多算法题,有点套路的感觉,只怪自己平时积累不多,现在只能亡羊补牢了。 关于尺取法的概念我就不介绍了,网上这方面讲解很多,主要说一些应用的方面,积累下目前遇到的一些可以用尺取法可以来解决的题目,不定期更新下。 尺取法参考博客 在此说明,我的梦想是进入网易,校招进入网易已经不可能了,我就在这里立一个誓言,将来一定会进网易尺取法的应用简单可以理解为,所有求连续的一段区

好大的小飞虫的博客 530

思科模拟器汉化教程(附带中文汉化包)

思科模拟器是一种模拟Cisco网络设备的软件工具。它可以模拟Cisco网络设备的所有功能,包括路由器、交换机、防火墙等,并提供了一个可视化的用户界面,让用户可以通过图形化的方式来管理网络设备。思科模拟器因其便捷、易用的特点被广泛应用于网络工程师的实验、测试和培训等方面思科模拟器的功能是强大的,但当我们在使用思科模拟器的时候就会有一些烦恼,由于思科是全球最大的企业级网络设备供应商之一。思科公司的产品和服务被广泛应用于各种领域和行业,所以思科模拟器默认是全英文的,但是在最新版本中是支持中文的。

2302_76908369的博客 4万+

FOJ 2013 动态规划:求最长子区间

题目: Problem 2013 A short problem Accept: 364 Submit: 1104 Time Limit: 1000 mSec Memory Limit : 32768 KB Problem Description The description of this problem is very short. Now give you a stri...

Scau_Jack的博客 906

ADS AEL脚本进阶:参数化电感与变压器的自动化设计

本文深入探讨了如何利用ADS AEL脚本实现电感与变压器的参数化与自动化设计。通过构建可复用的函数库、封装高级设计流程、集成DRC检查与性能预估,将繁琐的手动绘制升级为高效的智能设计引擎,并最终通过创建GUI工具降低使用门槛,大幅提升射频/微波电路设计效率。

weixin_29309785的博客 203

Rust练手:从零手撸RISC-V架构虚拟机(一)(附完整代码)

使用Rust实现一个简单的RISC-V架构的CPU雏形,支持add,sub,addi三个指令。

qq_45983373的博客 2569

最大连续子段和及其区间

#include<iostream> #include<cmath> #include<algorithm> #include<stdio.h> #include<string.h> #include<queue> #include<vector> #include<set> #include<m...

寻找秀儿的博客 389

基于STM32L4XX、HAL库的ESP32-C3-WROOM-02-N4 WIFI模块驱动程序设计

支持802.11 b/g/n Wi-Fi (2.4GHz)RISC-V 32位单核处理器,主频高达160MHz。封装尺寸:18mm × 20mm × 3mm。工作温度范围:-40°C ~ 85°C。// 设置WiFi模式为STA。支持Bluetooth 5 (LE)// 发送AT指令测试通信。// 检查响应是否包含OK。内置4MB SPI Flash。// 连接TCP服务器。// 发送HTTP请求。// 初始化UART。// 建立TCP连接。低功耗设计,适合IoT应用。

zhusl6688的博客 384

hdu3530 Subsequence 单调队列

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

TIMELIMITE的专栏 1337

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

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

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

HDU 3530 Subsequence 题解

HDU 3530 Subsequence 题解 HDU 3530 题目 ThereThereThere isisis aaa sequencesequencesequence ofofof integersintegersintegers. YourYourYour tasktasktask isisis tototo findfindfind thethethe longestlongestlongest subsequencesubsequencesubsequence thatthatthat sa

Y的博客 237

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

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

【HDU3530】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 and no larg

ha 191

HDU 3530 Subsequence

这个题意是给你n个数,然后寻找一个区间,区间的最大值与最小值的差要小于k并且大于m 思路: 用两个单调序列维护这个序列,显而易见用当前者两个单调序列的列首相减如果大于k的话那么,我们就要寻找列首在序列位置比较小的那个往后面加1。这个题目的难点在于题目意思是区间,我理解错了。以为是那种最长公共子序列那种。 #include #include #include using namespac

wuhulala的休息室 926

HDU3530 Subsequence

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

zezzezzez的博客 289

hdu3530Subsequence rmq

//用rmq做,ma[i][j],以i为起点的2^j长度的数组中的最大值 //枚举所求最长子列的起点 //枚举这个最大长度为是在2^(j-1)和2^(j)z之间 //然后再在这个范围内找 #include #include #include #include using namespace std; const int maxn=100010; int a[maxn],

ijbuhv的专栏 992

[hdu3530]Subsequence 解题报告

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

Engels_Si_Fish的博客 1934

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

菜鸟起飞的平台 466

【HDU3530】【单调队列(双)】Subsequence 【长度为n的数列,求最长子区间的长度,使得区间的最大值与最小值的差满足一个范围】

传送门:HDU 3530 Subsequence 描述: Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 6143    Accepted Submission(s): 2042 Pr

魔笛手的博客 4423

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

Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 2136    Accepted Submission(s): 708 Problem Description There is a sequ

喵呜的Blog 2128
上一篇: B - Gary's Calculator
下一篇: hdu5115
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值