BZOJ 分析 $[l,r]$ 的非空子集数为 $2^{r-l+1}-1$,而子集贡献数至多为 $1000(r-l+1)$。 当 $2^{r-l+1}-1>1000(r-l+1)$ 即 $r-l+1>13$ 时,根据抽屉原理显然有解,因此直接输出 Yuno 即可。 先考虑操作 $1$ 怎么做。用树状数组维护每个点被修改的次数,然后倍增即可求出答案。 再考虑操作 $2$。设 $dp...
QTREE1 把 $(fa_i,i)$ 的边权作为 $i$ 的点权,然后就是个树剖板子了... 但是注意查询时 LCA 是不能查的,需要判一下。 而且这题竟然不能交 C++ ,然后我改了半个小时才把 C++ 改成 C QAQ QTREE2 DIST 操作只需要维护树上前缀和即可求出答案。 KTH 操作大力讨论一下答案应该在 $u-lca$ 的链上还是 $v-lca$ 的链上,然后倍增上去即...
Luogu BZOJ 分析 显然大树最多会有 $10^{10}$ 个点,完全开不下。 但是发现每次操作都是复制一颗子树,所以可以把大树当做一颗树套树。 构造大树时,令每一个大节点为模板树中的一颗子树,并对大树重新编号,就像这样: 作出如下定义: 两个大节点的边权为对应的树的根节点的距离,比如上图$1$和$2$之间的边权为$2$。 $st[i]$ 表示大节点 $i$ 对应的小节点的编号区间...