随笔分类 - 动态dp
摘要:题目大意:给你一棵 n个点 以 1为根 的树,每个点有0,1,2三种颜色之一,初始时整棵树的颜色均为 0。 m 次操作, 每次操作形如: 1 x y c : 将 x到y的路径上的点全部改为颜色C 2 x : 询问 x 所在的同色连通块大小 数据范围:$n,m≤
阅读全文
摘要:不难发现此题是一道动态dp题 考虑此题没有修改怎么做,令f[i]表示让以i为根的子树被覆盖的最小花费,不难推出f[i]=min(∑j∈son[i]f[j],val[i])。 依然采用树链剖分+线段树维护每一条链。线段树上每个节点维护val1和val2两个值。 其
阅读全文
摘要:动态dp好题 考虑用树链剖分将整棵树剖成若干条链。 设x的重儿子为son[x],设x所在链链头为top[x] 对于重链上的每个节点(不妨设该节点编号为x)令f[x]表示以x为根的子树内(除以son[x]为根的子树),包含节点x的联通块的最大权值和。 我们求出一条重
阅读全文
摘要:此题场上打了一个正确的44pts,接着看错题疯狂rush“正确”的44pts,后来没rush完没将之前的代码copy回去,直接变零分了。。。。。 这一题我们显然有一种O(nm)的做法 令f[u][0]表示在以u为根的子树内部署军队,且u不部署军队的最小代价。 令$
阅读全文
摘要:题目大意:给你一颗n个点的树,点有点权,有m次操作,每次操作给定x,y,表示修改点x的权值为y。 你需要在每次操作之后求出这棵树的最大权独立集的权值大小。 数据范围:n,m≤1e5 我们显然可以得出一个O(nm)的暴力做法,每次修改完后dp一次,然而这个显然会超时
阅读全文