url: https://www.luogu.com.cn/problem/P2851tag:动态规划,背包DP,进制,USACO,2006思路:可以用背包来做。用 f[i] 表示john付i块钱时最少的硬币数,用 g[i] 表示店主找零i块钱时最少的硬币数,对于f来说,因为硬币数量有限所以需要用多重背包来完成。而对于g来说因为硬币无限多,所以可以…
url: https://www.luogu.com.cn/problem/P2986tag:动态规划,树形DP,USACO,2010思路:可以参考 洛谷P3478 POI 2008 STA-Station 都是要求出当某一个节点为根时其他点到这个根的距离,我们可以用一次dfs来求出以任意选的一个节点作为根节点时的答案,比如选择节点1为根节点。然后…
url: https://www.luogu.com.cn/problem/P2340tag:动态规划,背包,USACO, 2003思路:可以转化为01背包问题来做,因为每个奶牛都只有选和不选两种状态。对于背包问题,需要考虑三个属性,一个是背包容量,一个是体积,还有一个是价值。在这道题中,iq和eq是等价的属性,所以可以一个当作体积,另外一个当作价…
url: https://www.luogu.com.cn/problem/P4084tag: 动态规划,树形DP,USACO,2017思路:用树形DP来解决。定义数组 f[i][k] 表示以i为根节点且i涂的颜色为k时的方案数。然后根据k的不同分别更新即可。最后答案输出以1为根节点时3个颜色方案数之和(以其他节点为根节点也可以)。代码:#incl…
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…
url: https://www.luogu.com.cn/problem/P2966tag:USACO09DEC,最短路,排序,USACO,2009思路:多次询问,点的数据范围小,所以可以用floyd,如果没有点权,那么这道题就是经典的多源汇最短路。为了处理这个点权,我们可以将每一个节点按照点权的大小从小到大排序,然后对于每一个中间节点都是按照从…
url: https://www.luogu.com.cn/problem/P3110tag:USACO14DEC,最短路,bfs,USACO,2014思路:求三遍最短路,分别是正着求Bessie 和 Elsie 到每个点的最短路,和逆着求终点n到每个点的最短路,然后枚举看从哪个点开始一起走(Bessie 可以背着 Elsie 走)然后到终点的能量…