声明 参考课件和讲授来自Accelerator 找树的直径 树的直径定义为一个树中最长的一条链。 1. 一种做法比较显然,我们可以大力 DP,维护出 一个节点向下的最长链F(x)和次长链G(x) ,保证 F,G不出自同一个儿子 ,然后用二者加和来更新答案, 同时更新父亲节点的最长链和次长链 。 2. ...
分类:
其他好文 时间:
2019-08-24 20:19:15
阅读次数:
82
树型DP DFS的回溯 是树形DP的重点以及核心, 当回溯结束后,root的子树已经被遍历完并处理完了。 这便是树形DP的最重要的特点 自己认为应该注意的点 1. 好多人都说在更新当前节点时,它的儿子结点都给更新完了,实际上这并不准确。对于当前节点,我们需要dfs它的儿子,并且在dfs中进行dp。在 ...
分类:
其他好文 时间:
2019-08-22 20:37:00
阅读次数:
117
以前学树型dp留下的题目,没有写,然后过了几个月后又回来写了这道题 "战略游戏" 这是一道典型的最小点覆盖的模板,蒟蒻采用的是树型dp的做法 设 $f[i][0/1]$ 在以 $i$ 为根的子树中,选或不选当前这个点所需要的最少的点 那么转移方程为: $f[i][0]=\sum_{v\in son[ ...
分类:
其他好文 时间:
2019-08-17 10:51:46
阅读次数:
100
数据结构进阶 堆 倍增 并查集 树状数组/线段树 树上差分/树剖 点分治 分块/莫队/整体二分 CDQ分治/离线分治算法 主席树动态规划基础DP模型 : 线性DP 背包DP 区间DP 树型DP 状压DP 环形DPDP优化 : 倍增优化 单调队列优化 数据结构优化 斜率优化图论最短路 生成树 LCA ...
分类:
其他好文 时间:
2019-07-02 18:57:24
阅读次数:
93
$\mathcal{Description}$ $\mathcal{Solution}$ 根据题意,我们知道 根节点深度为1,深度为 __奇数__ 的节点由$David$移动,我们称为$D$点,深度为 __偶数__ 的节点由$Vincent$移动,我们称为$V$点 记$big[i],sma[i]$表 ...
分类:
其他好文 时间:
2019-06-21 22:21:43
阅读次数:
126
"传送门" 其实要求的东西就是后缀树上所有叶子对的距离之和.构建反串SAM,然后构建parent树(原串后缀树),然后就是树型dp的事,~~具体细节留给读者自行思考~~ ~~那个,不会看代码啊~~ cpp include define LL long long define il inline de ...
分类:
其他好文 时间:
2018-12-16 21:42:06
阅读次数:
142
传送门 分析 经典的树型DP 我们记录dp[i][0/1]表示i的子树中到i的长度分别为偶数和奇数的长度和 dp2[i][0/1]则表示不在i的子树中的点到i的长度分别为偶数和奇数的长度和 然后根据边的长度情况转移一下就可以了 代码 ...
分类:
其他好文 时间:
2018-11-03 21:10:02
阅读次数:
182
"传送门" 看到唯一的依赖关系,容易想到树型dp,即$f_{i,j}$表示选点$i$及子树内连通的点,代价为$j$的最大价值,然后就是选课那道题 但是要注意 1.题目中的依赖关系不一定是树,可能会有环,我们可以发现环里面的点要么全选要么全不选,要用tarjan把环缩为一个点,同时把代价和价值加到缩后 ...
分类:
其他好文 时间:
2018-09-18 22:38:32
阅读次数:
196
传送门 分析 一道简单的树型dp,我们用dp[i][j]记录考虑到第i个点,保留了j个树枝的最多苹果数,然后dfs求解即可。 代码 ...
分类:
移动开发 时间:
2018-08-22 21:59:02
阅读次数:
262