1.由根分为左右子树两部分情况 二叉苹果树 2.背包类树形dp 选课 3.树的最长链 数字转换 4.树的最大独立子集 战略游戏 5.普通树的dp 皇宫看守 ...
分类:
其他好文 时间:
2019-08-30 09:17:07
阅读次数:
104
考虑容斥,枚举哪些串必然出现,那么贡献为$(-1)^{选中的串数}$。 设$f[i][j]$表示$i$的子树内,$i$点往上是$j$这个串的贡献之和,那么总状态数为$O(n+m)$,用map存储$f$。 将子树的DP值与父亲合并时,按串长分类讨论: 若子树串比较长,那么暴力枚举它的前缀状态转移即可。 ...
分类:
其他好文 时间:
2017-09-03 10:00:11
阅读次数:
134
题意:一棵n(n
这道题想了两天,看了题解一开始也不明白(泪目),后来一想可以当成树上的01背包来做,终于ac,这应该是目前做的最难的一道动态规划题了。
思路是:这道题的难点之一是可以返回父节点,而且由于x太大,状态里假如有x那么数组太大开不下,我们要另外选择一种方式表示状态,对此我们可以用两个状态来表示,用d[i][x][j+k][0]表示在以x结点为根结点的树中,从...
分类:
其他好文 时间:
2015-05-29 10:02:58
阅读次数:
119
题目大意就是求树的最小结点集,树上的动态规划基础题,一次深搜就可以解决问题
代码如下:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace s...
分类:
其他好文 时间:
2015-05-27 10:22:51
阅读次数:
123
题意:一棵树,进行染色,每个没染色的节点恰好和一个染色的节点相连,求染色的节点最少的个数X(以下均以X代表子问题的解)
思路:树形DP,细化状态,从而对每个节点的每种状态互相递推
这里如何细化状态是难点,而且也是这类难题的共同问题
很容易知道每个节点i至少两个状态:dp[i][0]: i没染上色时以i的子树的X。dp[i][1]: i被染色以i为子树的X
但是仅仅这两个状态无法实现状态转移...
分类:
其他好文 时间:
2015-03-15 09:34:18
阅读次数:
140