LCT
Akakii
_(:з」∠)_
展开
-
JZOJ4090. 树上三角形
题目大意给定一棵n个节点树(根节点是1),每个点有点权vi,给定q个询问,要求支持三种操作。1 u v 询问树上所有在u到v的简单路径的节点(含u,v)中,是否存在三个不同的节点,使得以这三个节点的点权为边长的三条边能够构成一个三角形。2 u v 将节点u的权值改成v。3 u v 若节点v不在以节点u为根的子树里,那么令u的父节点为v,否则令v的父节点为u,如果u=v那么忽略这一条操作原创 2017-01-02 16:39:54 · 482 阅读 · 0 评论 -
BZOJ2002. [Hnoi2010]Bounce 弹飞绵羊
题目大意给定一个长度为n的序列,第ii个位置的绵羊会被弹到i+ki这个位置,若不存在i+ki这个位置,那么这只绵羊就被弹飞。 给定m个操作,询问从某一位置弹飞一只绵羊需要的弹射次数或者修改某一个位置的k值。Data Constraint n≤200000,m≤100000原创 2017-01-11 20:13:13 · 379 阅读 · 0 评论 -
从《NOI2014 魔法森林》看动态树(LCT)的简单应用
题目大意给定一个n个结点,m条边的的无向图,每条边有两个权值ai,bi。 现在从1出发,要到达n,出发时带上任意多的A,B,每次只能沿着ai≤A且bi≤B的边走,问至少要带多少的A,B使得能从1到n。Data Constraint n≤50000,m≤200000原创 2017-01-01 23:31:18 · 2308 阅读 · 1 评论 -
HNOI2017 单旋
题解可以发现,每次单旋最大或者最小值的时候其实就是一个简单的Link/Cut的过程。所以可以用LCT维护树的形态。 现在的问题是如何处理插入操作。仔细观察可以发现,对于当前这个插入的权值为xx的点,设当前存在的权值恰好比xx小的点为aa,当前存在的权值恰好比xx大的点为bb。那么当前这个插入的点最后一定是a,ba,b中深度较大的点的儿子。这个可以用一个set维护。时间复杂度:O(nlogn)O(n原创 2017-04-22 21:58:17 · 477 阅读 · 0 评论