合集-单调队列/栈
摘要:原题链接 题解 1.我们没法遍历每个区间然后找出他们的最小值,所以我们考虑每个元素对答案的贡献 2.对于每一个元素来说,它的贡献等于它所在的区间长度乘上自身的值,这里的区间指的是以它为最小值的区间 3.以每个元素为最小值的区间要怎么求呢?我们将其转换成求左边第一个小和右边第一个小 对于这种问题(求序
阅读全文
摘要:原题链接 题解 具体想 \(a\) 是如何一步一步变成 \(b\) 是很复杂的,所以我们换个角度思考(比如贡献) 遍历每一个 \(a[i]\) 看看他们能帮助哪些 \(a[j]\) 变成 \(b[j]\) 而且不妨碍 \((i,j)\) 中 \(a\) 的元素,用数学语言表达就是 \(use[j]=
阅读全文
摘要:原题链接 题解 注意数据范围 1.我们不知道要在哪些地方建站,所以考虑都遍历一遍 2.如果一个地方 \(i\) 要建站,那么在它前面且离它最近的一个站,一定建在所有右端点大于 \(i\) 的区间中,左端点最大区间里 所以我们令 \(dp[i]\) 表示为在 \(i\) 建立一个站,且和 \([1,i
阅读全文
摘要:原题链接 题解 尽量直观地理解单调队列的作用 首先,对于合法的一段,有如下性质 A 满足: 当前的最高温度大于等于前面的最大的最低温度 该性质对于段内每一个数都满足,所以对于第 \(i\) 天,我们可以找其前面的第一天 \(j\) 的最低温度大于 \(i\) 的最高温度,同时还要满足 \((j,i]
阅读全文
摘要:原题链接 题解 首先,考虑接下来往哪颗树飞是很困难的,因为当前的决策会影响之后的决策 但是如果考虑到达当前树从哪里飞过来就比较好了,因为无后效性 接着我们可以暴力做法,遍历每棵树从前 \(k\) 个树飞过来的值,然后取最小的那个,但是这样显然会超时,所以我们优化一下 有哪些值得被优化的地方?--有很
阅读全文

浙公网安备 33010602011771号