
RMQ
nlj1999
这个作者很懒,什么都没留下…
展开
-
LCA转RMQ
最近一直在被lrj的紫书的最后一章虐,前几天写LCT被卡常数卡成狗,现在来玩玩LCA。 以前用的都是Tarjan求LCA,只能处理离线问题(倍增老写错所以就懒得用了),今天学了下欧拉序列,随手下了个LCA,然后又写挂了。。。。。。写错了一个变量名这事不能怪我TAT。 其实利用欧拉序列求LCA的思想还是很简单的。 我们令pos(k)为节点k在欧拉序列中第一次出现的序号,再得到一个深度序列B,B原创 2015-12-11 20:43:23 · 363 阅读 · 0 评论 -
2006: [NOI2010]超级钢琴
RMQ+Heap+区间分裂。 对于任意区间右端点i,其左端点取值在l,r之间,若左端点为m,则v为max(sum[i]-sum[m-1]),显然这里i是不变的,所以可以用rmq查询m的位置,然后计算v。 现将所有右端点扫一遍,然后扔到堆里面,堆中节点记录的是决策,即右端点i,左端点区间,优先级由v决定。 然后取出堆顶,v加到ans里去,分裂[l,r]为[l,m-1]和[m+1,r],rmq出原创 2015-12-23 11:40:26 · 551 阅读 · 0 评论