有 N 个物品和一个容量是 V 的背包。 物品之间具有依赖关系,且依赖关系组成一棵树的形状。如果选择一个物品,则必须选择它的父节点。 如下图所示: 如果选择物品5,则必须选择物品1和2。这是因为2是5的父节点,1是2的父节点。 每件物品的编号是 i,体积是 vi,价值是 wi,依赖的父节点编号是 p ...
分类:
其他好文 时间:
2020-10-30 12:56:08
阅读次数:
20
0边把图分成两个部分,这两个部分的路径之间,mex起码为1,都对答案产生1的贡献。 然后1边接在0边旁边,把图分成了更小的两个部分(0,1的两端),和一些不会再产生新的贡献的区域,这两个更小的部分路径之间,mex起码为2,都对答案又产生了1的贡献。(他们在刚刚算mex起码为1的时候,已经贡献过1了, ...
分类:
其他好文 时间:
2020-02-10 11:43:40
阅读次数:
48
Problem 一棵树的直径就是这棵树上存在的最长路径。现在有一棵n个节点的树,现在想知道这棵树的直径包含的边的个数是多少? Solution 随便找一个点,找最远的,再找新的点最远的。 当然我瞎搞的树状dp,子树分支最大的和次大的加起来就行。 Code include include includ ...
分类:
其他好文 时间:
2019-10-29 21:22:31
阅读次数:
123
船送门 一道树状dp,在处理子问题上的做法真的就是单纯的标准dfs树状dp。从叶子节点向上枚举可以得到每个节点的最大子树,但这题的问题在于,没有给出根节点,而且每个节点都可以作为根节点。 那么我们只需要枚举每个结点作为根节点时的情况。在每种情况中,遍历与根结点相连的结点,求出以该节点为根节点的最大子 ...
分类:
其他好文 时间:
2019-01-29 23:14:27
阅读次数:
205
题目链接: 题意 敌方人员成一棵树状,前线人员为叶子节点,司令为树根。 两节点之间边权为wi。 现欲切断司令与前线的联系,问在切断边权值之和小于m时,最大边权最小为多少。 思路 二分最小值,树状dp[i]求子树被处理后的边权和。 提交过程 ||| : |: WA|INF给太大了,溢出了 AC| 代码 ...
分类:
其他好文 时间:
2018-08-16 19:48:05
阅读次数:
178
Petrozavodsk Summer Training Camp 2017 Day 9 Problem A. Building 题目描述 :给出一棵树,在树上取出一条简单路径,使得该路径的最长上升子序列最长,问最长的长度。 solution 最常见的想法就是树状 dp ,但空间不太够,所以选择直接 ...
分类:
其他好文 时间:
2018-03-31 00:51:31
阅读次数:
191
题目:https://www.luogu.org/problemnew/show/P2014 树状DP,注意枚举当前子树中选几个时的边界。 代码如下: ...
分类:
其他好文 时间:
2018-02-12 11:28:08
阅读次数:
154
一、题意 首先是对题目的翻译。给出一个长长的字符串,这个字符串描述了一个吊灯。对于给字符串只有两种操作数——'a'为一个吊灯灯珠,将改灯珠入栈,一位阿拉伯数字K,代表一个环,将把该数字前面k位数都出栈并且穿成一个环,并将该环重新入栈(作为一个单元)。由此可以得到一颗神奇的树——每个节点的若干子节点呈 ...
分类:
其他好文 时间:
2017-11-10 15:14:12
阅读次数:
166
本来线性DP 都不怎么有信心,可以说学得非常差,于是下意识地觉得树状的肯定超过了我的理解能力,然后做这题的时候就直接翻了题解,哪知道这么简单……简直比01 背包还好理解啊,看来以后不能总是看到算法标签就退避了。 1 #include<iostream> 2 #include<cstdio> 3 #i ...
分类:
其他好文 时间:
2017-07-26 21:53:01
阅读次数:
597
题意:给一棵n个结点的无根树染色,求使每个结点距离为k的范围内至少有一个被染色的结点的总染色方法数目 分析:首先我们定义: 对于结点v, 如果存在一个黑色结点u距离v不超过k,则结点v被“控制” 首先将无根树转换成以1为根的有根树,设dp[v][i]为对于以v为根的子树,距离v最近的黑色结点深度为i ...
分类:
其他好文 时间:
2016-12-03 23:50:06
阅读次数:
228