摘要:
树链剖分 树链剖分就是将一棵点权树以先遍历重儿子的方式,得到一个dfs序,再对这个dfs序进行操作,与一般的dfs序不同,重链在该dfs序是一个连续不断的区间,该dfs序支持链修改,链查询,子树查询,子树修改,求lca等。在一棵有根树上,我们称一个节点u 的子节点v 为节点u 的重儿子当且仅当v 是 阅读全文
摘要:
树状数组总结 首先我们来说一下这个算法的正确性,从一维开始吧,我们假设有两个点,i,i1,i一直加上lowbit(i),而i1一直减去lowbit(i1),这是两个严格单调的序列,如果这两个序列有交点,则有且只有一个交点k,则从i~i1这一段的和可以用c[k]来记录(且只有一个c[k]满足)。 二维 阅读全文
摘要:
# include # include # define N 100010 int a [N] ; int vmax [N > 1 ; build ( o * 2, lf, mid ) ; build ( o * 2 + 1, mid + 1, rg ) ; vmax [o] = std :: max ( vmax [o * 2], vmax [o * 2 + 1] ) ;... 阅读全文