• 题单+部分题解(从易到难)


    LCT

    模板

    题解:无

    [HNOI2010]弹飞绵羊
    题解:新建个虚拟节点,弹到虚拟节点就算被弹飞。
    每次查询access一下即可。
    [NOI2014]魔法森林(+最小生成树)
    题解:考虑从小到大枚举a型精灵的数量,发现它恰好是一条边的边权。现在我们可以走的是边权<=现在a的边。
    可得从1~n的代价(max值)最小的路径在MST上(货车运输的结论),所以问题转化为有加边操作的mst。
    如果现在有最小生成树,每次加边会形成一个环,可以用lct找到环上代价最大的边且删去,由K氏法的结论可知一定正确。
    边权可以新添额外点转成点权。
    [ZJOI2016]大森林
    题解:距离可以使用树上差分解决。也可以新添额外点但常数较大。
    发现“区间长点”等于“全局长点”,因为不会询问到没有的点。
    考虑离线询问,则问题转换为如何快速从任意的i的树推到i+1的树。
    可以发现:第l棵树是第l-1棵树把这个1操作以后连在原来生长节点上的所有节点(以及所有子树)全部连到x上生成的树。
    普通LCT不能支持这种操作,要建虚点(或者用ETT)
    操作1可以把每个操作建一个虚点,后面所有0操作(直到下一个1操作)都连在这个虚点上,则这个虚点子树在修改生长节点时该被连到当前点。
    lct上lca可以使用lct的性质求得:先access(x),再access(y),access(y)过程中最后一个跳到的虚边的父节点就是lca。
    【雅礼联考GDOI2017模拟9.2】Ztxz16学图论(+线段树)
    题解:先离线询问。把所有询问挂在右端点上。
    每次维护一颗动态的树。树上每条边的权值是边的标号。并且维护一个数据结构,l~r的权值和为连通块个数。
    每次在右移右端点时,从左扫到右端点的每一个后缀都会增加一条边,这条边可能会让一条原树边变为环边(权值最小的那条),可以使用lct找到这条边且删掉。同时在数据结构上修改。
    查询直接查区间和即可。
    边权可以变为点权
    [SDOI2017]树点涂色 (+线段树,LCA)
    题解:由于每次染的颜色都是不同的,所有一个颜色会行成一个连通块,且为一个深度递增的链。
    发现这个涂色操作比较像lct的access操作。实际上,可以在lct上每个节点到与它相同颜色的儿子点(最多只有1个)连一条重边。由于每次染的颜色都是不同的,所以一个点到根的权值就是它到根节点的虚边个数。
    可以维护一个数据结构,在lct上,虚实边如果切换,则在数据结构上子树对应的区间打+1/-1标记。
    2操作可以树上差分然后3次单点查询。3操作可以线段树区间查询。
    【GDOI2019模拟2019.2.23】字符串(+border理论,后缀自动机,线段树)
    做的方式有点像树点涂色。
    uoj349【WC2018】即时战略(+随机化)
    [ZJOI2018]历史 (+树剖,贪心)
     
    多项式
     
    链分治
    CF1208H red blue tree(未理解)
    [SDOI2017]切树游戏
    [ZJOI2019]Minimax搜索 
    动态dp模板
    CF1010F Tree
    fwt
    模板
    【GDOI2019模拟2019.2.15】石子游戏 

    CF1119H Triple

    [ZJOI2019]开关
    【GDOI2020模拟02.09】西行寺无余涅槃
    石家庄的工人阶级队伍比较坚强
  • 相关阅读:
    负数幅角的选取
    记一次py交易
    区间估计
    平方和
    正态总体 下常用结论
    每日一背
    乘积的期望
    java调用javascript
    Java Agent入门
    JavaPoet入门
  • 原文地址:https://www.cnblogs.com/cszmc2004/p/12234206.html
Copyright © 2020-2023  润新知