随笔分类 - 动规 - 树形DP
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4987 其实就是在树上找有 k 个点的连通块(路径上的点都选是最优的),之间的边都走了两遍,只有一条路径(a[1] -> a[k])走了一遍; 于是 f[x][j][0/1/2] 表示以 x 为
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=5072 由于对于一个子树,固定有 j 个黑点,连通块大小是一个连续的范围; 所以记 f[i][j] 表示以 i 为根的子树中选 j 个黑点,连通块最大的点数,g[i][j] 表示最小的点数; 然
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4711 就是树形DP,然而也想了半天才把转移想清楚; f[x][j][0] 表示 x 去上面 j 步的仓库,f[x][j][1] 表示 x 去子树内下去 j 步的仓库而且整个子树都算好了; f[
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P2585 首先,三色其实记录两种状态:是绿色,不是绿色 即可,因为红蓝可以随意取反; 一开始因为懒得还原出树,所以写了个错误贪心-_- #include<iostream> #include<cstdio> #inc
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P1131 记录 x 子树内同步的时间 f[x],同步所需代价 g[x]; 直接转移即可,让该儿子子树与其它儿子同步,只需要在自己到儿子的那一条边上改动。 代码如下:
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P1351 树形DP,别忘了子树之间的情况(拐一下距离为2)。 代码如下:
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P2634 今天刚学了点分治,做例题; 好不容易A了,结果发现自己写的是树形DP...(也不用找重心)(比点分治快) #include<iostream> #include<cstdio> #include<cstri
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3743 一开始想到了树形DP,处理一下子树中的最小值,向上的最小值,以及子树中的最长路和向上的最长路,就可以得到答案,可以DP; 然而写着写着写不下去了,不会求向上最小值和最长路; 于是看看TJ
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2427 今天的考试题...好不容易一次写对了树形DP,却没发现有环的情况... 发现自己 tarjan 都不太熟了,差点没写上那个 vis 数组! 还有点要注意的地方,如果一个环跟外部都不连边,
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3631 树上差分;注意路径的结尾被多算了一次,最后要减去(不能提前减)。 代码如下:
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4033 树形DP,状态中加入 x 与父亲之间的边的贡献; 边权竟然是long long... 代码如下:
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P3354 状态中要记录一个“承诺”,只需相同承诺之间相互转移即可; 然后就是树形DP的套路了。 代码如下:
阅读全文

浙公网安备 33010602011771号