动态树
samjia2000
I swear...
We are INFINITE.
展开
-
LCT(Link Cut Tree)学习小记
动态树(Dynamic Tree) 之前我一直以为这是一种数据结构,最近才明白这是指一类问题。在学习LCT之前首先要学习树链剖分。 树链剖分就是将一棵树划分成若干条链,用数据结构去维护每条链,复杂度为O(logN)。树链剖分针对的是树的形状不会变的树,但是如果树的形状是会变的(即要支持将树分离、合并的操作),就需要用到LCT(Link Cut Tree)了。LCT大概思路就是用splay去维护每原创 2016-01-15 21:04:41 · 924 阅读 · 0 评论 -
[Hnoi2010]Bounce 弹飞绵羊
题目大意从左到右有n个位置,在第i个位置会被弹到第i+a[i]个位置,超出范围则挂掉,有q个操作,一种是更改某一位置上的a[i],一种是询问第i个位置什么时候会挂掉分块设f(i)为i在其块内最少跳多少次会跳出这个块,而g(i)表示他跳出块后会跳到哪个点,于是修改时我们可以重构块,询问时就一个一个块跳。时间复杂度O(nn√)O(n\sqrt n)LCT很容易发现,如果我们把跳出去都记为跳到n+1,那么原创 2016-06-30 15:30:59 · 382 阅读 · 0 评论