10 2018 档案
摘要:线段树求直径可以求任意子树(包括连子树都不算的分散节点集合)的直径,适用范围广。 线段树的每个节点所对应的区间$[L, R]$,指代了$Dfn$在$[L, R]$内节点,其中线段树上每个节点存储了$diam$(当前区间直径)及$lp, \ rp$(当前直径对应的左右端点),每次$Merge$操作分为
阅读全文
摘要:题目描述 $ZZQ$ 是一国之主。 这个国家有$N$个城市, 第$i$个城市与第$(i + 1) (mod N)$和$(i - 1) (mod N)$在一个正$N$边形相连。 $ZZQ$ 又新建了$N - 3$条道路。这些道路都是连接两个城市的直线 段,且任意两条线段都只可能在城市处相交,不会在旧的
阅读全文
摘要:一维树状数组 · 单点修改 + 单点查询: 直接使用即可 · 区间修改 + 单点查询: 另外维护一个维护前缀和的树状数组,查询时查询与原值相加即可。 · 区间修改 + 区间查询: 若要查询区间$[1, R]$的区间和,可推公式,其中$D[i]$表示差分数组: $\sum\limits_{i=1}^R
阅读全文
摘要:zkw线段树是对普通线段树的常熟优化版本,$≈$树状数组的常数。 同时普通线段树是近似完全二叉树,而zkw线段树是满二叉树,且普通线段树自上而下访问,zkw线段树先找到叶子节点,自下而上进行访问。 那么易得建树 对于区间修改或查询,我们假定此时区间为$[L, R]$,那么令$s = L - 1$,$
阅读全文
摘要:· 题解 参考hzwer 首先看到Mi的条件想到构造虚树。 虚树中的一条边已经覆盖了整个出现在这条边上的点的子树的情况。 那么只需倍增查找所属议事处有变化的边界节点,同时计算这两段节点的贡献即可。 · 代码 1 #include <iostream> 2 #include <cstdio> 3 #i
阅读全文
摘要:· 定理 $n$个节点二叉树形态种类数为$Cat (n)$。 · 证明 很难通过简单递推得到答案,因为会产生重复的情况。 一般我们使用二叉树都是通过递归,故考虑从递归处得到启发。 对于任意$n$个节点的二叉树,它的左右子节点个数是可以被枚举的 —— $1 + (n - 1) / 2 + (n - 2
阅读全文

浙公网安备 33010602011771号