摘要:
线段树合并: 一般是将若干棵权值线段树的信息整合到一棵权值线段树上。均摊复杂度$O(n\log{n})$。 同时遍历两棵线段树,若某一边没有节点则直接返回另一边的节点,否则继续遍历直到$l=r$。 #include<bits/stdc++.h> #define maxn 1000005 #defin 阅读全文
摘要:
题意: 有一棵n个点的树,m次操作,每次操作给路径$(u,v)$上每个点发一个类型为w的物品。 在所有操作后请你求出每个点个数最多的物品类型。 $n,m,w\leq 10^{5}$。 题解: 两种做法,树链剖分和线段树合并。下一篇写线段树合并。 树链剖分基本就是把序列问题上树,于是考虑序列怎么做,直 阅读全文
摘要:
莫队: 离线后通过对询问合理排序使得复杂度降低一个$\sqrt{n}$。(本身并不需要用块维护东西) 一般情况下分块大小为$\sqrt{n}$,以左端点所在块为第一关键字,右端点为第二关键字排序。 然后依次暴力处理询问即可。 带修莫队: 一般情况下分块大小为$n^{\frac{2}{3}}$,以左端 阅读全文