该文被密码保护。 阅读全文
摘要:
这大概是NOIP前最后一道题了,顺便复习一些模板。 考虑到不是真正要进行“换根”这个操作,我们发现在查询子树和修改子树的时候只要按照遥远的国度这题的方法分类讨论一下就好了,我们考虑一下如何换根意义下的$lca$。 先分类讨论,假设当前结点是$(u, v)$根是$rt$。 1、$u, v$都在$rt$ 阅读全文
摘要:
BZOJ4009 权限题 真的不想再写一遍了 大佬blog 假设有果实$(x, y)$,询问$(a, b)$,用$st_i$表示$i$的$dfs$序,用$ed_i$表示所有$i$的子树搜完的$dfs$序,那么果实对询问产生贡献只会有两种情况: 1、这个果实表示的区间是一条链 不妨假设$dep_x < 阅读全文
摘要:
离线 + 树状数组 如果子树中的一个深度的所有点中有两个以上的字母出现了奇数次,那么这个询问的答案就是$No$,其他的情况吧都是$Yes$。 由于只有$26$个字母,我们可以考虑暴力检验,把树映射到$dfs$序上然后看一看子树区间中每一个字母出现了多少次。 我先写了一个动态开点的线段树,然后$O(2 阅读全文
摘要:
$dp$。 这道题最关键的是这句话: 跳出思维局限大胆设状态,设$f_{x, i, j}$表示从$x$到根要经过$i$条公路,$j$条铁路的代价,那么对于一个叶子结点,有$f_{x, i, j} = c_x * (a_x + i) * (b_x + j)$,对于内部结点,有转移: $f_{x, i, 阅读全文
摘要:
分治 + 主席树。 设$solve(l, r)$表示当前处理到$[l, r]$区间的情况,我们可以找到$[l, r]$中最大的一个数的位置$mid$,然后扫一半区间计算一下这个区间的答案。 注意,这时候左半边是$[l, mid]$,而右区间是$[mid, r]$,我们在这个区间处理的时候要算完所有$ 阅读全文
摘要:
BZOJ 1706权限题。 倍增$floyd$。 首先这道题有用的点最多只有$200$个,先离散化。 设$f_{p, i, j}$表示经过$2^p$条边从$i$到$j$的最短路,那么有转移$f_{p, i, j} = min(f_{p - 1, i, k} + f_{p - 1, k, j})$。 阅读全文
摘要:
最近很颓……难题想不动……水题写不对,NOIP怕是💊 考虑到树上路径的唯一性,假如这两个点的距离是个奇数,那么凉了,一定找不到一个点到这两个点的距离都相等。 判完奇数的情况可以找到这个和两个点距离相等的点,这里又要分两种情况讨论: 1、这个点刚好是$lca$。 如图,蓝色为询问点,绿色为$lca$ 阅读全文
摘要:
BZOJ 1023 如果我们把所有的环都缩成一个点,那么整张图就变成了一棵树,我们可以直接$dp$算出树的直径。 设$f_x$表示$x$的子树中最长链的长度,那么对于$x$的每一个儿子$y$,先用$f_x + f_y + 1$更新答案,再用$f_y + 1$更新$f_x$。 考虑加入环的情况,保留这 阅读全文
摘要:
BZOJ 3573 发现当一个点的权值确定了,整棵树的权值也会随之确定,这个确定关系表现在根结点的总权值上,如果一个点$x$的权值为$v$,那么一步步向上跳后,到根节点的权值就会变成$x*$每一个点的儿子个数。 换句话说,只要这个权值表现在根结点上的相同,那么这些点就不用修改可以构成题目要求的关系, 阅读全文