洛谷 P3047 USACO12FEB Nearby Cows G
url: https://www.luogu.com.cn/problem/P3047tag:树形DP, USACO, 2012思路:用f[u,m] 表示以u为根节点,向下走出不超过m步时的权值,d[u, m] 表示以u为根节点,向上或向下走不超过m步时的权值。利用两次dfs分别求出f和d,最后输出每个节点作为根节点时的权值和即可。代码:#incl…
洛谷 P1944 最长括号匹配
url: https://www.luogu.com.cn/problem/P1944思路:用动态规划的思路来做。用f[i]表示以s[i]结尾的括号匹配字符串,属性是最大值。从第二个字符开始检查,如果当前字符为 )或 ] ,以及距离上一个匹配好的字符串前的一个字符与其相匹配,则更新长度为f[i] = f[i - 1] + 2,同时可以检查前两个字符…
树形 DP
什么是树形 DP?树形 DP(Dynamic Programming on Trees)是一种在 树结构 上使用 动态规划 解决问题的方法。它的核心思想是 自底向上 递归计算,每个节点的状态依赖于它的子节点的计算结果。如果你熟悉普通的 动态规划(DP),你可以把树形 DP 理解为:普通 DP 在一维或二维数组上进行(如最长子序列、背包问题)。树形 …
AIR:热重载 Go 应用的工具
安装使用 go install (推荐)使用 go 1.23 或更高版本:go install github.com/air-verse/air@latest使用方法只需执行 air 命令air文档GitHub URL: https://github.com/air-verse/airREADME: https://github.com/air-v…
洛谷P2476 着色方案
url: https://www.luogu.com.cn/problem/P2476tag:SCOI2008,动态规划,搜索,记忆化搜索思路:开一个6维的数组来表示状态(因为每种情况有多种,所以不能用压位bit),分别表示足够涂1, 2, 3, 4, 5块木头的颜色有几种,最后一维表示上一种颜色的种类。然后用记忆化搜索来做。参考: https:/…
洛谷P1278 单词游戏
url: https://www.luogu.com.cn/problem/P1278tag:记忆化搜索,状压DP思路:记忆化搜索,dfs两个参数一个是当前的字母,另外一个是当前的状态。f[x, y] 表示当以字符串x开头是状态为y时最大的字符串长度。代码:#include <iostream> #include <vector&…
洛谷P2966 Cow Toll Paths G
url: https://www.luogu.com.cn/problem/P2966tag:USACO09DEC,最短路,排序,USACO,2009思路:多次询问,点的数据范围小,所以可以用floyd,如果没有点权,那么这道题就是经典的多源汇最短路。为了处理这个点权,我们可以将每一个节点按照点权的大小从小到大排序,然后对于每一个中间节点都是按照从…
洛谷P3110 Piggy Back S
url: https://www.luogu.com.cn/problem/P3110tag:USACO14DEC,最短路,bfs,USACO,2014思路:求三遍最短路,分别是正着求Bessie 和 Elsie 到每个点的最短路,和逆着求终点n到每个点的最短路,然后枚举看从哪个点开始一起走(Bessie 可以背着 Elsie 走)然后到终点的能量…
洛谷P1120 小木棍
url: https://www.luogu.com.cn/problem/P1120tag: 枚举,搜索,剪枝,dfs思路:先从大到小排序,并计算全部木棍长度的和。之后从最长的木棍长开始一直到和的一半枚举,作为原来木棍的长度。然后拿到这个原来的长度之后dfs一下看在有限段的情况下能不能拼凑出全部木棍,可以就输出。最后枚举完全部可能结果后都没答案,…