![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
文章平均质量分 71
Jason_Wcz
这个作者很懒,什么都没留下…
展开
-
HDU 3033 I love sneakers! (分组背包)
HDU题目链接该题和背包九讲中的分组背包还是有区别的,九讲中每组取一个,这题每组随意取,因此循环顺序变一下,相当于在每组中有个0-1背包就可以了代码中带解释:import java.util.Arrays;import java.util.Scanner;public class Main{ static Scanner sc = new Scanner(System.in);原创 2017-11-29 16:52:29 · 192 阅读 · 0 评论 -
51nod 1086 背包问题V2(多重背包)
题目链接复习下背包,然后做一个多重背包的题就能顺带复习0-1和完全背包。模板题,没啥好说的,顺便为了容易记和可读性,改了下背包代码的风格,注意的是,我一开始二进制优化用的除法,从大往小分,导致了可能是精度的原因,一直有两个点过不去,最后改成乘法,以后都用这个吧。import java.io.*;import java.math.*;import java.util.*;public cl...原创 2018-05-21 21:54:00 · 187 阅读 · 0 评论 -
生命之树 (搜索 || 树形DP)
题目链接搜索: 直接把学长的题解拉过来吧。 确定一个点为树根,同时作为初始点累加权值,来寻找包括这点的最大连通权值和。对每个子节点如果其对应子树不存在正连通,不予考虑;否则,累加子树中包含这个子节点的最大连通权值和。可以看出这是个分治策略,可以递归实现。设 F(x)为 x 子树中包含点 x 的最大连通权值和,xi为 x 子节点 ( 分析一下复杂度,对每个点进行一次搜索,每次搜索 O(n...原创 2018-03-06 16:36:50 · 174 阅读 · 0 评论 -
HDU 1520 Anniversary party (树形DP)
题目链接这题和 POJ 2342 还有 URAL 1039 一样,只不过测试了HDU的数据应该是最严格的一个,因此选了HDU的链接。思路:我们考虑从最大boss开始搜索整颗树,其次这个boss只有两种状态就是去或者不去,然后他的状态会影响他的直属员工的选择,也就是 1.当这个boss去的时候,下属必然不能去;2.当这个boss不去的时候,下属可去可不去;然后我们单纯考虑这个boss下属的时候,也是...原创 2018-03-06 16:12:18 · 122 阅读 · 0 评论 -
HDU 2546 饭卡 (01背包)
题目链接思路:题意是要我们计算最后饭卡最少能剩多少钱,>=5可以随意买,因此,要想办法使得没买最后一个东西前,余额尽可能逼近5,反言之就是初始金额m和5的差值,相当于背包的容量,我们尽可能装满。为了达到最后余额最小的目的,先对价格排序,把价格最高的留到最后扣。、代码:dp[j]表示容量为j时,最多能花多少钱import java.util.*;public class Main{ st...原创 2018-03-15 15:20:06 · 123 阅读 · 0 评论 -
垒骰子 (DP+矩阵快速幂)
题目链接思路:直接把学长以前发的题解截个图吧。比较详细。那么,我们如何在叠骰子里应用上述算法?在动态规划解法中,dp[i][j]的值等于前一高度所 有方案的选择性累加,一说到选择性累加,是不是十分类似与矩阵快速幂博客中斐波那契数 列的那个只包含 0 和 1 的矩阵?在斐波那契例子中,那个只包含 0 和 1 的矩阵就是这样通过 列向量的 0 或 1 对右边矩阵进行选择累加,从而得出左边矩阵的。那么,...原创 2018-03-01 14:08:14 · 265 阅读 · 0 评论 -
分割数列(DP)
题目链接题目描述Dana有一个长度为n的数列,他想把这个数列分割成连续的好几段(可以不分割),使得每一段中都保证没有重复的数。 他想知道有多少种可以得分割方式。由于答案可能很大,请把最终结果对1000000007(10^9 + 7)取余。 输入输入的第一行包含一个整数n,表示数列中的数的个数。第二行包含 n 个整数 A1 A2 … An,分别表示每个数。输出输出一行,包含一个整数,表示有多少种可...原创 2018-02-18 19:47:03 · 1352 阅读 · 0 评论 -
取球游戏 (DP || 博弈)
今盒子里有n个小球,A、B两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下多少个,并且两人都很聪明,不会做出错误的判断。 我们约定: 每个人从盒子中取出的球的数目必须是:1,3,7或者8个。 轮到某一方取球时不能弃权! A先取球,然后双方交替取球,直到取完。 被迫拿到最后一个球的一方为负方(输方) ...原创 2018-02-04 15:41:27 · 358 阅读 · 0 评论 -
POJ 1088 滑雪 && HDU 1078 FatMouse and Cheese (坐标DP两题对比)
POJ 1088 滑雪HDU 1078 FatMouse and Cheese两题题意大致相同,做法也相同,差别在于最后输出,到底是直接输出dp[1][1](我使用 1,1 点作为起点),还是在dp数组中选择最大值。我因为没考虑清这个问题,两题分别用了另一题的输出方式。。。。首先在做滑雪的时候,因为测试样例能够遍历全图,所以我直接在最后输出了dp[1][1],然后提交一直WA,后来原创 2017-12-01 15:38:52 · 190 阅读 · 0 评论 -
PAT (Advanced Level) 1045 Favorite Color Stripe (DP)
dp[i][j]表示fav中第i个数匹配到stripe第j个数时,所能获得的最大长度。 由于同样的数字可以重复,因此状态转移方程:#include<iostream>#include<cstdio>#include<vector>#include<cstring>#include<algorithm>using na...原创 2018-08-28 10:28:57 · 108 阅读 · 0 评论