• 2019-9-9做题记录


    1、罗马游戏:

    左偏树模板。

    小根堆:合并选小的做根,记为$r1$,然后把$r2$合并到$r1$右边(原$r1$左边长,右边短),然后更新父亲,判断长度关系交换儿子,更新长度。

    删除用$fhq\_treap$的删除方式。

    查找用并查集的方法,但是不带路径压缩。

    2、棘手的操作:

    联通块内最小值用左偏树维护,全局最小值用$multiset$维护。

    3、城池攻占:

    把所有的骑士一块处理,因为每一个骑士只会加入军团一次、死掉一次,所以如果我们只维护这些事件,复杂度是正确的,很容易想到左偏树。

    注意到无论加一个数、还是乘一个正数,左偏树内(维护的集合)内的相对大小不变。所以我们可以通过打懒标记(类似$fhq\_treap$)的方式维护加、乘。

    到一个点时直接把小于防御值的骑士弹出左偏树宣告死亡,然后把还在左偏树里的元素打上修改懒标记即可,

    维护懒标记要像$fhq\_treap$那样$merge$,$pop$时$pushdown$。

    4、【APIO2012】派遣:

    选定管理者之后,选的点一定是这个子树里面,尽可能多。所以选小的,合并直接把超过预算的大的部分弹出左偏树即可。

    5、Roads in Yusland

    $aysn$给我推荐的神仙题,$yyb$也写了。结果想了很长时间都没有做出来。晤,果然我还是太弱了。

    是一个带反悔的贪心操作。

    从下至上考虑,对于每个点的父边,把不能到达这条边的链弹去,此时,堆中的元素都是可以覆盖到这条边的,我们找到一个权值最小的从下面上来的覆盖这条边的链,然后把它算到答案中去,并且把它自己和堆中存的链全都减去它的权值,意思是:万一有一天,发现一个比它更优的链,不仅可以完成把这条边覆盖,还可以把更上面的边覆盖,就把现在选的这条边去掉,选更优秀的。

    要是知道了过程,正确性应该不难理解吧。

    6、Dynamic Ranking

    去年就会做的题,今天重写一下,就当复习了。

    对于不带修改的情况:

    如果序列长度为$n$,那我们需要$n$棵线段树,它们是对于值域建的,第$i$棵主席树代表数$a_1,a_2,...,a_i$形成的集合,在序列上,后一个等于在前一个的基础上挂一条链,这样查找的时候,我们只要关心第$r$棵和第$l-1$棵,在值域上二分,最后确定下点,这个过程中,两个数的指针是一起同向动的。

    扩展到带修改的情况:

    我们还是需要$n$棵线段树,但是第$i$棵主席树代表$a[i],a[i-lowbit(i)]...$形成的集合,建主席树的时候,就不存在一个是另一个的基础关系了,所以要把$a_i$插入到$i,i+lowbit(i)...$中,查找的时候,要确定组成前缀和最多的$log[l-1]+log[r]$个主席树的位置,直接在上面检查二分的值域是否合法,这些指针也是一起同向动的。

    7、【BZOJ2588】Count On a Tree

    在树链上找$k$大,我不知道怎么处理(以为要树链剖分),但是看了题解,才发现我是会的,这状态。。。发现和江苏的一道字符串题的套路是一样的。

    $x$在$fa[x]$的基础上加上$x$的权值,找的时候确定四棵线段树,分别是$u,v,LCA(u,v),fa[LCA(u,v)]$,然后通过这些检验就可以了。

    8、【BZOJ3123】森林

    第7题的操作下带一个合并操作,那么直接启发式合并就行了。但是这是一个无根树,怎么启发式合并呢?

    选一个维护联通块的$size$,然后让小联通块的接点的父亲是大联通块,这样每次只需要对小联通块内的每个点重建一条链即可。

    9、【BZOJ3932】任务查询系统

    一眼主席树,用扫描线的方法,每次只关心变化,处理询问直接在第$x$棵线段树上二分即可。

    10、【BZOJ3295】动态逆序对

    曾经被我用分块卡过去了,复杂度根号$log$里套根号,现在想想块的大小还可以更优。。。。

    然后$aysn$写神仙主席树,把我$D$了,呜呜呜。

    现在看看好像很水,带修改主席树,正难则反(正好像不是很难,但我习惯这种思维了),每次加入一个数,查前面有多少数比他大,后面有多少个数比他小,复杂度是两个$log$的。

    11、【BZOJ4571】美味

    从大到小按位考虑,先假设这一位可以选$1$,把每次把查找的范围缩小在一个区间里,查找区间内有没有可行的解,如果有,接收再考虑下一位,如果没有,被迫选$0$,再考虑下一位。本质上就是一个值域上二分的过程。

  • 相关阅读:
    Linux操纵体系备份工具Tar运用说明
    Linux琐屑网络设置细致分解
    若何制造Linux系统启动盘2
    RedHatAS5下整合Apache和Tomcat
    移除Linux体系下不需求的效劳
    Linux平安隐患及增强管理的方法1
    Fedora 9 布置好后启动不克不及进入GUI,表现屏表现“Out Of Range"的处理惩罚法子
    Linux和Unix最常用的收集下令
    若何彻底移除编造机Wine模仿程式的图标
    若何制造Linux系统启动盘1
  • 原文地址:https://www.cnblogs.com/shxnb666/p/11495106.html
Copyright © 2020-2023  润新知