
动态规划 树形dp
文章平均质量分 86
Fsss_7
这个作者很懒,什么都没留下…
展开
-
hdu5647DZY Loves Connecting
链接:http://acm.hdu.edu.cn/showproblem.php?pid=5647题意:BC76div1的B题。分析:一个很明显的树DP,我们设tr[i]表示以i为根的子树方案数,sum[i]表示以i为根对答案做的贡献。但是!在计算贡献的时候不能先把tr[i]乘出来,然后分别求各个儿子的贡献,因为可能会出现tr[i]==0的情况,这样逆元是无效的。我们应该在统计儿子x的时候原创 2016-03-19 22:14:11 · 764 阅读 · 0 评论 -
bzoj2286: [Sdoi2011消耗战
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2286题意:中文题。分析:题目中要求所有的关键点与根1断开,很容易想到树形dp。但是由于多组询问会导致时间*m。单次O(n)不可取。很显然是要优化的,我们发现单次O(n)时还是会做很多无用功,而且题目说sigma(ki)代码:#include#include#include原创 2016-04-07 20:23:07 · 1938 阅读 · 0 评论 -
bzoj3611: [Heoi2014]大工程
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3611题意:中文题。分析:同消耗战是一类题,询问过多,但是关键节点少,那么我们先建虚树(最大2*max个节点),同消耗战建虚树。然后在树上跑一遍DP即可。O(max*logn)代码:#include#include#include#include#include#inc原创 2016-04-11 20:56:18 · 523 阅读 · 0 评论 -
hdu5758Explorer Bo
链接:http://acm.hdu.edu.cn/showproblem.php?pid=5758题意:给定一棵n个点的树,每次任选两个点,然后覆盖两点间的所有边,要求选择最少的次数覆盖所有的边,在最少次数的情况下要求覆盖边的次数最小。分析:要求选择的次数最小那么显然是从叶子到叶子才会使得总体最少。那么就要将叶子为奇或偶分类讨论,先讨论偶数的情况。我们以一个不是叶子的就节点当根,以每个根为原创 2016-07-27 21:24:25 · 1212 阅读 · 0 评论 -
计蒜客 微软的员工福利(中等)
链接:https://nanti.jisuanke.com/t/11147题意:中文题。分析:中等难度n=100,我们可以树形dp,在计算节点i的时候我们暴力n^2枚举它和儿子们形成的min和max的所有可能,然后进行dp即可。在枚举的时候要考虑清楚。我写得比较麻烦。代码:#include#include#include#include#include#include#原创 2016-07-09 17:46:25 · 737 阅读 · 0 评论 -
hdu4126Genghis Khan the Conqueror
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4126题意:给定n个点的m条边,其中有q条边中的一条一定会变大(每一条变大的概率相同),求变大之后最小生成树边权和的期望。分析:最小生成树+树形dp的好题。首先我们要确定最初的最小生成树是有哪些边组成的,然后对于每一条可能变大的边进行判断,这样变大的边就会被分为两类A:变大的边不是最小生成树中的边,原创 2016-08-05 23:21:02 · 504 阅读 · 0 评论 -
hdu5834Magic boy Bi Luo with his excited tree
链接:http://acm.hdu.edu.cn/showproblem.php?pid=5834题意:给定一棵树,有点权和边权,点权上的价值只能取一次,多次通过边要花费多次边权,求以每个节点为起点能获得的最大价值。分析:比较经典的一类树形dp,设1为根设g[i][0/1]表示从i出发只向儿子走的最大收获,0表示最终回到了i,1表示最终是在某个子孙中结束的,设f[i][0/1]表示i到i的原创 2016-08-15 13:17:02 · 1965 阅读 · 0 评论 -
hdu5909Tree Cutting
链接:http://acm.hdu.edu.cn/showproblem.php?pid=5909题意:给定一棵无根树,统计所有子树的异或和的个数。分析:求出所有子树的异或和,题解的两种方法我都写了一下。第一种是FWT加速卷积O(n*m*logn)。第二种是树分治,因为是无根树,我们可以每次用树dp确定过重心的方案数,然后每次删掉重心就是树分治啦O(n*mlgon)。fwt代码:#原创 2016-10-26 21:38:45 · 830 阅读 · 0 评论