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