摘要: 这道题和上一道题非常相似这道题是看边,上一道是看点。但是状态定义不同看边的话没有不放不安全这种状态因为当前结点的父亲无法让这颗子树没有看到的边看到所以这种状态不存在而上一道题存在不放不安全这种状态因为当前结点的父亲可以让这个不安全的结点变得安全边和点是两种不同的思考方... 阅读全文
posted @ 2018-09-01 16:52 Sugewud 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 这道题的难点在于状态怎么设计这道题要求全部都是安全的,所以我们做的时候自底向上每一个结点都要是安全的结合前一题当前结点选和不选,我们可以分出四种情况出来选 安全选 不安全不选 安全不选 不安全显然选 不安全是不可能的,那么就去掉所以我们就可以设计状态为表示i放人且安全... 阅读全文
posted @ 2018-09-01 16:28 Sugewud 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 一颗树,选取不相邻的点,求最大点权值因为当前结点选或不选后后效性,所以我们加一唯来取消后效性表示以i为根的树且i不选的最大价值表示以i为根的树且i选的最大价值显然有#include#include#include#define REP(i, a, b) for(int... 阅读全文
posted @ 2018-09-01 14:23 Sugewud 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 从这篇博客往前到二叉苹果树都可以用分组背包做这依赖性的问题,都可以用于这道题类似的方法来做表示以i为根的树中取j个节点所能得的最大价值那么每一个子树可以看成一个组,每个组里面取一个节点,两个节点,三个节点就是三个不同的物品对于这道题,有我们来类比一下普通分组背包的转移... 阅读全文
posted @ 2018-09-01 11:51 Sugewud 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 最近在做树形dp,遇到几道多叉树的问题都可以用树上背包的做法来做。还不是很懂,据说是分组背包,所以我就找了一道分组背包的题来打打基础摘自《背包九讲》 这里循环顺序要注意先枚举重量后枚举物品可以使得只取一个物品然后最外层就是组#include#include#inclu... 阅读全文
posted @ 2018-09-01 11:25 Sugewud 阅读(146) 评论(0) 推荐(0) 编辑