![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树dp
Boxxxxxxx
只与自己做对比。
展开
-
CF383C 树状数组+dfs序
改变一下标dfs序的顺序就可以变成裸题了。这是老的dfs序但是这样子不方便修改。我们标dfs序的时候隔层标,变成这样隔层标的好处是对于题目而言的每一个修改操作,操作符相同的几个点的dfs序是连续的,这样我们就可以分两次改变两个连续区间,就是变成一道裸体了。举个例子比如我改变1的值,那么[2,3]区间是+val, [4,5]区间是-val,这就可以完成题目的要求。关于如何这个连续区间是多少,从哪里开始,你在写个简单dp维护一下就可以了int N,M;ll c[max_];il int lowb原创 2020-12-01 19:45:12 · 254 阅读 · 0 评论 -
牛客每日一题 4.7 树 树dp+组合数学
昨天的牛客鸽了,我不会数学首先第一步要理解题意就是要把树分成多个联通块,每个联通块的颜色都要不一样,求方案数。为什么每个联通块的颜色都不一样,因为如果有同样的颜色在不同的联通块上的话就无法满足题意,这两个点之间的路径的所有点就不会是都是同一种色。用f[i][j]代表的是以i为根的子树分成j个联通块的的方案数。由于我没想到大佬说的分成j个联通块就是删掉j-1条边,所以就硬算去合并每个子树的答案...原创 2020-04-06 16:06:16 · 184 阅读 · 0 评论 -
牛客每日一题4.3 Shortest Path 树dp
首先这个数据范围,看着就是O(N)或者O(Nlogn)的东西,考虑树dp。先贪心的考虑。一个点怎么找到另一个点?肯定是他能接触到的最短的那个点,如果与他最短的那个点被用过了呢?找其他第二近的点,以此类推。对于一个点,是只有当找不到人了才会继续走上去找其他人匹配,不然不管多大的权值都是会跟那个人走的。因为对于一条权值很大的边,边连着的两个点如果深度深的点在往下匹配不到人,就必须走上匹配,最少需要...原创 2020-04-02 15:03:44 · 133 阅读 · 0 评论 -
牛客每日一题4.1 Rinne Loves Edges 树dp
首先理解题意后可以转化为以S为根的树,用最少的权值去删除边,使得所有的叶子与S不相连。如果可以得出上面的题意那这题就是个树dp简单题了。那么设f[i] 为以i为根的子树,他的所有叶子都达不到i节点的最少权值花费。显然方程就是f[i] = sum( min ( f [to], i与to相连的权) )这个方程就是对于i的每一个儿子,你有两种选择,第一种是砍掉i与to相连的边,这样所有叶子都不...原创 2020-03-31 14:50:12 · 136 阅读 · 0 评论