摘要:
[传送门] 题意就是给一排围栏,每个围栏都有一个高度,查询区间$\left[l, r\right]$之间长度为$w$的子区间的最小高度的最大值。首先,这个最大值肯定是这个区间里的围栏的某个高度,如果是一个未出现过的高度,显然能有更高的高度满足条件。那么就可以考虑在离散化后的高度数组里二分答案,然后c 阅读全文
posted @ 2019-10-14 18:21
Mrzdtz220
阅读(169)
评论(0)
推荐(0)
摘要:
[传送门] 比赛的时候想了半天的带修改主席树(其实之前只写过一次。),两个log甚至三个log都想了,自闭了五个小时还是不会实现。问了一下西瓜得到了一个非常妙的1 log解法。此处膜瓜🍉 一操作相当于把一个数删掉,因为$a_i + 10^7$肯定不会影响到$n + 1$,最坏情况下也能直接取$n 阅读全文
posted @ 2019-10-14 18:19
Mrzdtz220
阅读(110)
评论(0)
推荐(0)
摘要:
[传送门] 其实就是这些数字前面能加正负号,在满足正负号均出现的情况下价值最大。那么就可以无脑DP$f[i][j][k]$表示到了第$i$位,正号是否出现($j$、$k$为$0$或$1$)能得到的最大价值答案就是$f[n][1][1]$$n$为1的时候特判一下就行举几个例子就能发现加正负号这个方法是 阅读全文
posted @ 2019-10-14 18:17
Mrzdtz220
阅读(150)
评论(0)
推荐(0)
摘要:
[传送门] 如果只有单次询问,可以直接树形DP$f\left[u\right]$表示以$u$为根的子树中所有资源丰富的岛屿不与$u$联通的最小代价转移方程显然若儿子节点$v$为资源丰富的岛屿$f\left[u\right] = f\left[u\right] + w\left[u, v\right] 阅读全文
posted @ 2019-10-14 18:09
Mrzdtz220
阅读(97)
评论(0)
推荐(0)
摘要:
D - Ki 题意:给一棵有根树,节点1为根,有$Q$次操作,每次操作将一个节点及其子树的所有节点的权值加上一个值,问最后每个节点的权值。 思路:dfs序再差分一下就行了。 #include <bits/stdc++.h> using namespace std; const int N = 2e5 阅读全文
posted @ 2019-10-14 14:32
Mrzdtz220
阅读(318)
评论(0)
推荐(0)
摘要:
[传送门] 将第二维离散化一下,按第一维从大到小,第二维从小到大,第三维从大到小排序,这样即使第一维相同的情况下也不会重,然后用一棵线段树维护第二维为$I_{i}$时第三维的最大值,插入每一个元素之前先查询$\left[I_{i} + 1, n\right]$的最大值,若查询得到的$x$大于$R_{ 阅读全文
posted @ 2019-10-14 14:27
Mrzdtz220
阅读(128)
评论(0)
推荐(0)
摘要:
[传送门] 分块,每一块维护一个单调递增的数组$w$,修改时因为区间加不会影响相邻元素的大小关系,所以在对于一整块的区间加打标记就行了。若不在同一块内就暴力修改每一个数,重新维护一次$w$数组,每次修改最多需要重构两块。查询操作先对每一块的$w$数组二分看存不存在$y$,最优解肯定由第一次出现$y$ 阅读全文
posted @ 2019-10-14 14:23
Mrzdtz220
阅读(171)
评论(0)
推荐(0)

浙公网安备 33010602011771号