标签: 枚举

9 篇文章

洛谷 P4158 SCOI2009 粉刷匠
url: https://www.luogu.com.cn/problem/P4158tag:动态规划,递推,枚举,背包DP思路:用 f[i][j] 表示前i块木板粉刷j次最多的正确次数。用 g[i][j][k] 表示第i块木板粉刷j次粉刷前k个格子时最多的正确次数。用 sum[i][j] 表示第i块木板,前j个格子中需要涂成蓝色的有几个。所以可以…
洛谷 P4170 CQOI2007 涂色
url: https://www.luogu.com.cn/problem/P4170tag:字符串,动态规划,枚举,区间DP思路:使用 f[i][j] 表示从i到j这个区间中如果要涂到规定的情况,最少需要的涂色次数。因为有区间,所以可以使用区间DP,对于每一各区间i到j来说如果第i个字符和第j个字符相同,则 f[i][j] 可以从 f[i][j …
UVA1629 切蛋糕 Cake slicing
url: https://www.luogu.com.cn/problem/UVA1629tag:动态规划,枚举,前缀和思路:用 dp[lx][ly][rx][ry] 来记录某一个区间中,为使每一块蛋糕都有樱桃的最小代价。使用dfs来枚举每一种可能性。使用记忆化搜索来减少时间。前缀和快速计算出某一块区域樱桃的数量。代码:#include <i…
洛谷 P1040 NOIP 2003 提高组 加分二叉树
url: https://www.luogu.com.cn/problem/P1040tag:动态规划,递归,枚举,区间DP,NOIP提高组,2003思路:使用区间dp的思路,令 f[i][j] 为节点i到节点j之间最大的加分,并用 root[i][j] 记录下这段区间的根节点。之后遍历每一种可能的区间,依据题目的公式更新数组f记录root最后得出…
洛谷 P1282 多米诺骨牌
url: https://www.luogu.com.cn/problem/P1282tag:动态规划,枚举,背包DP思路:用 f[i][j] 表示用前i块多米诺骨牌形成的差值为j时旋转次数。因为差值的范围是-5000-5000,所以数组加一个5000的偏移量。状态转移方程为 f[i][j + p] = min(f[i - 1][j - (a[i]…
洛谷P1120 小木棍
url: https://www.luogu.com.cn/problem/P1120tag: 枚举,搜索,剪枝,dfs思路:先从大到小排序,并计算全部木棍长度的和。之后从最长的木棍长开始一直到和的一半枚举,作为原来木棍的长度。然后拿到这个原来的长度之后dfs一下看在有限段的情况下能不能拼凑出全部木棍,可以就输出。最后枚举完全部可能结果后都没答案,…
洛谷P1119 灾后重建
url: https://www.luogu.com.cn/problem/P1119tag:图论,枚举,最短路思路:这道题可以用floyd算法来做,每次询问,都将当前这个时间可以重建完的村庄用floyd算法更新一下所有点的最短路。最后判断一下这个询问的两个村庄是否重建完以及是否可以联通,如果重建完并且联通就输出最短路,否则输出-1代码:#incl…
洛谷P3135 Fort Moo P
url: https://www.luogu.com.cn/problem/P3135tag:枚举,构造,动态规划思路:看了题解好像是可以用动态规划中的求最大子矩阵来做,但是这里用了很暴力的写法,加上前缀和优化也能过。这个做法本质上就是不断地枚举每一个矩形然后判断四条边是不是满足条件,然后再更新最大值就好了。代码:#include <iost…