Contest2162 - 2019-3-28 高一noip基础知识点 测试5 题解版

本文介绍了单调栈在算法问题中的多种应用场景及实现细节,包括如何利用单调栈解决特定问题的步骤和注意事项,同时还提供了搜索加剪枝等其他算法的示例。

传送门

T1

单调栈

按照b排序

在家每一个物品时,判断一下a和b的关系

如果s[sta[top]].a>=s[i].b,就弹栈

记录所有时候的height,并取最大值


 

T2

单调栈裸题

单调栈是干什么的??

单调栈是记录一个数的一侧的第一个比他大或比他小的数

记录方法:若a将b弹出,则mark[b]=a;


 

T3

搜索+剪枝

剪枝1:若总长度%要拼成的长度!=0,就不用再搜了一定不合法

剪枝2:从大到小搜

剪枝3:若搜到第一个时,就直接用当前的最大值做为第一个


 

T4

 emm……单调栈

从前扫一遍,从后扫一遍

在弹出时做异或的操作

时间复杂度:O(n)


 

T5

单调栈

话说这一次考了4道单调栈

和最大长方形的思路很像

求以a[i]为最小值的区段的左界le右界ri

然后更新答案num[ri-le(+1)(-1)]//自己看记录的ri和le是如何记录的

num[i]=max(num[i],num[i+1])

记住要从后向前取max


 

转载于:https://www.cnblogs.com/yanghaokun/p/10621543.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值