单调栈/单调队列
lamentropetion
---
展开
-
【枚举区间+线段树】CF Ehu 152 E
对区间计数,按照CF惯用套路,枚举其中一个端点,对另一个端点计数。对于这道题,枚举右端点,对左端点计数。原创 2023-09-01 21:40:58 · 317 阅读 · 0 评论 -
【单调栈】代码源每日一题div1 字典序最小
为什么是这样,如果后面没有这个数,说明就不满足每个数出现一次的条件了。枚举ai,当栈里的元素大于ai时且该位置后面还有这个数时弹出。因为是字典序最小,所以要尽可能是[1,2,3,....N]所以我们需要维护每个数出现的最后一个位置。考虑用单调栈维护这个子序列。原创 2023-06-08 12:29:19 · 45 阅读 · 0 评论 -
【单调栈】CF771div2 C-Inversion Graph
如果第i个位置出现x使得x和前面一些元素组成连通块,那么就需要在栈里删除前缀那些大于x的值,并用x代替。肯定不能直接建图,复杂度太大,那怎么间接地维护连通块个数呢。因此可以使用单调栈维护每一个连通分量的代表元素。首先它是个排列,要我们维护连通分量的数量。我们去维护每一个连通块的代表元素即可。原创 2023-04-18 11:03:24 · 60 阅读 · 0 评论 -
【滑动窗口】ABC267 C - Index × A(Continuous ver.)
答案要求的是一个区间内1*ai+2*a(i+1)+....,所以我们考虑暴力维护这个区间的这个值。其中波浪线部分直接可以维护区间和,然后左边少的那个和右边多的那个直接在移动窗口的时候维护就行。虽然是简单题,但是这就是DS的含金量!所以我们需要维护变化的这个部分。原创 2023-04-11 15:58:32 · 76 阅读 · 0 评论 -
洛谷P2698 [USACO12MAR]Flowerpot S
..原创 2022-08-26 17:30:55 · 202 阅读 · 0 评论