dfs序
DOFYPXY
这个作者很懒,什么都没留下…
展开
-
[2017纪中11-2]救赎 dfs序+树状数组 / 递推
题面 考场O(nlogn)做法: 对于一棵有根树,考虑每个点和它的儿子们的那些边的期望,容易得出答案为: 假如建出来的树以1为根,计算出子树大小sz和儿子个数num,那么考虑一个点对不同点为根节点的答案的贡献: 1、根节点不在它的子树中,上式size=sz[x],|son|=num[x]。 2、根节点为它自己,上式size=n,|son|=num[x]+1。 3、根节点在它的某个儿子p的原创 2017-11-02 19:29:35 · 316 阅读 · 0 评论 -
[BZOJ4182]Shopping 点分治+dfs序+多重背包单调队列
题目的限制就是买的点必须是一个联通块。 考虑先枚举一个点必选,那么就是一个有依赖的多重背包(就是选了子树根才能选子树中的点),用一下树型背包的套路:先搞出dfs序,设fi,jf_{i,j}表示考虑了dfs序后ii个点,花了jj的钱的答案,如果不选就跳过整棵子树的区间,如果选就从i+1i+1转移过来即可。 考虑把这个枚举变成点分治就可以了,复杂度O(mnlogn)O(mn\log n)。 代码原创 2018-01-04 22:05:32 · 803 阅读 · 2 评论