
技巧
悭吝韶华
在学习Unity和图形学.
展开
-
Venice Technique
Venice Technique是我在cf补题的时候看到的,有兴趣的人可以看看这位大佬对这个技巧的描述:大佬写的博客传送门简单总结一下,该技巧可以看成一种数据结构.并支持以下操作:1.添加一个新元素到集合中.2.把一个元素从集合中删去.3.把集合中的所有元素加上一个值.4.得到所有元素的最小值代码如下:struct VeniceSet { multiset<int> S; int water_level = 0; void add(int v) { S.insert(原创 2021-03-05 20:35:35 · 279 阅读 · 0 评论 -
单调队列
首先你可以看下这道题,单调队列就是用来解决这道题的。模板题可以看到:你要在O(n)时间内求出每个连续区间的最值。我们知道我们总希望可以利用前一个连续区间的答案,但它有时效性(越过了他的作用范围就不能再使用),这样问题该如何解决呢?其实我们可以维护一个双端队列:队列的一端,一般用队尾,表示最值(可能已经失效,失效就弹出来即可)队列中所有元素都是有序排列的,只要队尾仍具有时效性,他就是最值。那么失去了时效性该怎么办呢?我们又该如何维护这个队列使得队列中所有元素按大小有序排列呢?这是我们需要思原创 2020-07-13 19:22:11 · 149 阅读 · 0 评论