随笔分类 - 树链剖分
摘要:一道经典的带修改树链第 $k$ 大的问题。 我只想出三个 $\log$ 的解法。。。 整体二分+树剖+树状数组。 那不是暴力随便踩的吗??? 不过跑得挺快的。 $Code\ Below:$ cpp // luogu judger enable o2 include define lowbit(x)
阅读全文
摘要:听说正解点分树?~~我不会就对了~~ 此题是 $[LNOI2014]LCA$ 强化版,也是差分一下,转化为区间加区间和 不过权值有大小要求,那么我们按照权值排序,依次加入主席树,询问的时候 $lower\_bound$ 一下找到区间 $[l,r]$ 在主席树上实现区间加,肯定要标记永久化。每次最多修
阅读全文
摘要:$\%\%\% Fading$ 此题是他第一道黑题(我的第一道黑题是蒲公英) 一直不敢开,后来发现是差分一下,将询问离线,树剖+线段树维护即可 $Code\ Below:$ cpp include define pii pair define mp make_pair define F first
阅读全文
摘要:看到大家的题解,没看懂$qwq$,所以我来发一下题解 首先,线段树要动态开点,不然对于每个宗教开一个线段树会炸的。这个树剖是肯定要敲的。对于每次记录一下每一个宗教的$Root$,运用主席树的思想维护 最后就是前排$orz$ @我是一个菜鸡 是他帮我调出来了几个十分搞笑的错误,帮他安利一下他的题解(应
阅读全文
摘要:开始复习$NOIP$啦! 树链剖分是一种非常实用的算法,树的重链最多只有$logn$条,所以它的复杂度是$O(nlogn)$ 如果树再套上一个线段树,那么复杂度多乘一个$logn$ 那么线段树怎么表示区间呢?可以用$dfs$序修改,多开一个$id[i]$表示$i$节点在线段树的位置 我们记录一个节点
阅读全文