随笔分类 -  DP --- 树形dp

摘要:题面 题解 CF1327F AND Segments + 整体 dp。 首先预处理 \(\mathrm{pre}_i\) 表示向上最深的 \(f(e) = 1\) 的边的深度最小值。 设 \(f_{i, j}\) 表示当前在点 \(i\),最深的 \(f(e) = 1\) 的深度为 \(j\) 的方 阅读全文
posted @ 2020-08-20 14:32 xgzc 阅读(901) 评论(0) 推荐(6)
摘要:动态 dp 之友( 阅读全文
posted @ 2020-08-13 09:32 xgzc 阅读(475) 评论(4) 推荐(1)
摘要:"题面" 题解 首先将所有相等的用并查集缩点,然后会发现题目有一个很有用的性质: 对每张图片$i$,小D都最多只记住了某一张质量不比$i$差的另一张图片$K_i$。 于是将$K_i$作为$i$的父亲节点,对于$K_i = 0$的点,令$i$的父亲为$n + 1$即可。 开始树形$dp$,设$f[x] 阅读全文
posted @ 2019-02-20 15:33 xgzc 阅读(206) 评论(1) 推荐(0)
摘要:"题面" 题解 首先我们需要看懂题目 然后我们需要发现一个结论 只要有一个节点的权值确定,那么整棵树的权值就确定了 就像这样:(图片来源于网络,侵删) 然后我们根据这张图片,可以设$f[i] = a[i] \cdot \prod_f \mathrm{son}[f]$ 其中$f$是$i$的祖先,$\m 阅读全文
posted @ 2019-02-18 10:48 xgzc 阅读(131) 评论(0) 推荐(0)
摘要:题面 $\text{BZOJ}$间接权限题 洛谷的弱化版 题解 三点距离两两相等要满足以下条件: 有一个相同的$\text{LCA}$ 所以如果存在一个点,使得另外两个点在它子树中,距离为$d$,且$\text{LCA}$距这个点为$d$, 那么这三个点就距离两两相等。 设$f[i][j]$表示以$ 阅读全文
posted @ 2019-01-06 18:35 xgzc 阅读(316) 评论(0) 推荐(2)
摘要:题面 题解 缩点之后一个裸的树型背包 代码 阅读全文
posted @ 2019-01-04 16:24 xgzc 阅读(123) 评论(0) 推荐(0)
摘要:"题面" 题解 树形$dp$(最大独立集) 设$f_{i,0/1}$表示$dp$到第$i$个点,在这个点放了(没放)士兵的最小花费 直接转移即可。 代码 cpp include include include define RG register define file(x) freopen( x" 阅读全文
posted @ 2018-10-23 21:48 xgzc 阅读(149) 评论(0) 推荐(0)
摘要:"题面" 题解 树形背包板子题。 设$f[i][j]$表示在以$x$为根的子树选$j$门课(包括$x$)能够获得的最高学分,用分组背包转移即可。 代码 cpp include include define RG register inline int read() { int data = 0, w 阅读全文
posted @ 2018-10-19 17:14 xgzc 阅读(399) 评论(0) 推荐(0)