![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ST表
DOFYPXY
这个作者很懒,什么都没留下…
展开
-
[2017纪中10-21]Fantasy 优先队列+ST表
题目链接:https://jzoj.net/senior/#main/show/5409 原题。。。同NOI2010超级钢琴。 这种求n个集合最大的k的值,考虑先把每个集合中的最大值扔到一个公共堆里,若某个集合最大值还未从堆中取出,那么这个集合中的次大值就没有必要进堆。从堆中不断取k次即可。假设我们很容易得到每个集合的最大值,并且删除最大值很容易得到次大值等等,这个方法就很可行了。 这题先前缀原创 2017-10-23 07:49:33 · 336 阅读 · 0 评论 -
[2017纪中10-24]方阵 二维ST表
题面 假的数据。。。考场上被坑成0分。 首先两个log的二维ST表很好想,st[i][j][k][l]表示以点(i,j)向右2^k,向下2^l的矩形内的答案。 (假设)考虑真的长不超过宽的两倍,我们可以把它分成两个以宽为边长的正方形(当然可能会有部分重叠),那么询问都转化成正方形,只需要预处理st[i][j][k]表示以点(i,j)向右下2^k的正方形内的答案。时间和空间都少了一个log。原创 2017-10-24 16:20:11 · 806 阅读 · 0 评论 -
[BZOJ3784]树上的路径 点分治序+ST表
点分治序就是每次点分治时的dfs序拼起来。点分治序的长度应该是nlogn的。 然后对于每一条路径(u,v),在出现了u的分治结构中,v总是在点分治序的一段区间里,就可以同NOI2010超级钢琴一样维护了,就是从堆中取出最大值,并把所在区间再分成两部分扔进堆里,重复m次即可。复杂度O(nlog^2n)。 代码:#include<iostream> #include<cstdio> #include原创 2017-12-11 10:54:58 · 449 阅读 · 0 评论