滑蒻稽的博客

【笔记】单调栈?

先看看求某个数左边第一个大于它的数?设 \(R_i\) 表示 \(i\) 右边第一个大于它的数的位置减一。那么对于 \(i\),实际上要求的就是满足 \([i,R_i]\subseteq [j,R_j],j<i\) 成立的最大的 \(j\)。画出图来长这个样子:

image

对于某个 \(i\) 来讲,左边所有的 \(j\) 都有考虑,栈顶的就是满足条件且 \(j\) 最大的那个。

posted @ 2022-04-11 20:47  huaruoji  阅读(32)  评论(0编辑  收藏  举报