![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
dp
mumei314
这个作者很懒,什么都没留下…
展开
-
Leetcode 6107. 不同骰子序列的数目
一道比较经典的dp题,感觉可以数位dp直接做,直接推状态和状态转移方程也行。时间复杂度: O(n∗6∗6∗6)O(n*6*6*6)O(n∗6∗6∗6)状态:dp[i][j][k]dp[i][j][k]dp[i][j][k]状态转移方程:边界条件:当n==1n==1n==1直接特判返回就行。...原创 2022-06-27 00:40:14 · 355 阅读 · 1 评论 -
力扣5.8每日一题——状压dp
力扣5.8每日一题题解暴搜+剪枝也可以过,这里就不多说了。不难发现题目是一个NP问题,最优做法应该就是状压dp。这里就讲一下状压dp的做法。状态dp[i][j]: 前i个工人完成所有工作的完成状态为j的最优解状态转移方程考虑第i个工人完成工作的所有情况dp[i][j]=min(dp[i][j],max(dp[i-1][state],sum[j-state]))state为j的状态子集sum[j-state]表示state状态的补集边界条件dp[0][i]=sum[i] 第一个工原创 2021-05-10 22:38:54 · 302 阅读 · 0 评论 -
Music Problem——01背包优化
题目链接:https://ac.nowcoder.com/acm/contest/5203/B一道很不错的题目,综合了多个知识点。题意:给你n个数,判断能否在这n个数中选一些数组成3600的倍数。先给这个题的一般形式。给你n个数,判断能否在这n个数中选一些数组成m的倍数。(1 ≤ n ≤ 1e6,2 ≤ m ≤ 1e3)然后我们可以发现一个01背包的解法(时间复杂...原创 2020-04-27 22:55:57 · 245 阅读 · 0 评论 -
dp——O(nlogn)求LIS
闲话众所周知,求LIS最简单的方法是O(n^2)的,但是有的题目会卡这个做法,这时我们就需要考虑优化了。算法描述我们定义一个数组d[i]为表示长度为i的上升子序列的最小末尾元素。然后我们每次往里面插入数字的时候考虑是否大于最后一个元素,如果大于接直接插入,否则的话找到前面比他大的第一个元素,并且把它替换掉,最后的数组大小就是LIS的长度。举例阐述下面模拟一组数据:2,5,...原创 2020-03-24 23:33:33 · 307 阅读 · 0 评论 -
dp训练计划——poj3666(离散化+滚动数组优化)
题目链接:https://vjudge.net/problem/POJ-3666#author=0258题目大意:求最小的代价使得序列变成不减或者不增序列。题解:状态:dp[i][j]表示前i个序列,且最大值为j的代价。状态转移方程:dp[i][j]=abs(j-w[i])+min(dp[i-1][k])(k<=j)注意我们求min(dp[i-1][k...原创 2020-03-13 11:43:01 · 326 阅读 · 0 评论 -
dp训练计划——poj3616LIS变形
题目链接:https://vjudge.net/problem/POJ-3616题解:直接把额外需要的休息时间加到结束时间上,然后按照开始时间排个序,用类似于LIS的套路求出最大牛奶量就行了。状态:dp[i]表示从1到i的最大牛奶量状态转移:dp[i]=dp[j]+第i个的牛奶量(1<=j<=i-1&&j的结束时间小于等于i的开始时间)#pr...原创 2020-03-12 23:29:49 · 147 阅读 · 0 评论 -
dp训练计划——最大对称子矩阵hdu2859
题目链接:https://vjudge.net/problem/HDU-2859题意:给你一个n*n的字母矩阵,求最大对称子矩阵的长度。题解:经典的dp问题。状态:dp[i][j]表示从(i,j)开始到右上角某一点能形成的最大对称子矩阵长度。状态转移:注意枚举顺序,因为是考虑的右上角,我们可以考虑正着枚举i,倒着枚举j。这样保证了无后效性。代码实现:...原创 2020-03-12 23:20:31 · 273 阅读 · 0 评论 -
dp训练计划——hdu1078记忆化搜索
题目链接:https://vjudge.net/problem/HDU-1078题目大意:有一种游戏是的玩法是这样的:有一个n*n的格子,每个格子有一个数字。遵循以下规则:1. 玩家每次可以由所在格子向上下左右四个方向进行直线移动,每次移动的距离不得超过m2. 玩家一开始在第一行第一列,并且已经获得该格子的分值3. 玩家获得每一次移动到的格子的分值4. 玩家下一次移动到达...原创 2020-03-06 00:25:52 · 147 阅读 · 0 评论 -
dp训练计划——poj3186区间dp简单题(递推+记忆化搜索)
题目链接:https://vjudge.net/problem/POJ-3186题目大意:给你n个数字v(1),v(2),...,v(n-1),v(n),每次你可以取出最左端的数字或者取出最右端的数字,一共取n次取完。假设你第i次取的数字是x,你可以获得i*x的价值。你需要规划取数顺序,使获得的总价值之和最大。Input第一行一个数字n(1<=n<=2000...原创 2020-03-05 23:55:10 · 233 阅读 · 0 评论 -
dp训练计划——poj1015(01背包变形+路径输出)
题目链接:https://vjudge.net/problem/POJ-1015题目大意:在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定。陪审团是由法官从公众中挑选的。先随机挑选n个人作为陪审团的候选人,然后再从这n个人中选m人组成陪审团。选m人的办法是: 控方和辩方会根据对候选人的喜欢程度,给所有候选人打分,分值从0到20。为了公平起见,法官选出陪审团的原则是:选出的m个人,...原创 2020-03-02 18:08:23 · 240 阅读 · 0 评论 -
dp训练计划——hdu1176逆序dp
题目链接:https://vjudge.net/problem/HDU-1176题目大意:都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以gameboy马上卸下身上的背包去接。但由于小径两侧都不能站人,所以他只能在小径...原创 2020-03-02 17:21:59 · 125 阅读 · 0 评论 -
dp训练计划——hdu1260简单dp
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1260题目大意:现在有n个人要买电影票,如果知道每个人单独买票花费的时间,还有和前一个人一起买花费的时间,问最少花多长时间可以全部买完票。Input给出 N(1<=N<=10),表示有N组样例 给出K (1<=K<=2000),表示有K个人买票....原创 2020-03-01 23:57:53 · 209 阅读 · 0 评论 -
dp训练计划——完全背包板子题
题目链接:https://vjudge.net/problem/HDU-1114题目大意:给你一个罐子的承受重量V,然后给你n种金币,每一种金币有两个属性,价值C[i]和重量W[i],每一种金币有无限个。然后让你判断是否能用罐子装重量为V的金币,如果能,请输出重量为V时金币的最小价值。题解:完全背包模板题,不过要注意初始化问题,在背包九讲里面也都讲了,不懂的自行百度。...原创 2020-02-28 23:19:34 · 280 阅读 · 0 评论 -
dp训练计划——hdu1074状压dp入门题
题目链接:https://vjudge.net/problem/HDU-1074题目大意:给你n个作业的名字,截止时间,完成需要的时间,数据按照字典序大小给你让你求出完成这个n个作业的最小延误时间(即超时时间),并输出字典序最小的安排顺序。题解:经典状压dp入门题,其实就是暴力枚举,只不过压缩一下用一个数表示全部的状态,然后暴力枚举所有状态,维护答案。我们首先需要发...原创 2020-02-28 23:09:08 · 202 阅读 · 0 评论 -
Super Jumping! Jumping! Jumping!——基础dp练习
Nowadays, a kind of chess game called “Super Jumping! Jumping! Jumping!” is very popular in HDU. Maybe you are a good boy, and know little about this game, so I introduce it to you now.The game can...原创 2019-02-13 01:16:40 · 121 阅读 · 0 评论 -
Monkey and Banana——贪心和动态规划(类似LIS)结合水题
A group of researchers are designing an experiment to test the IQ of a monkey. They will hang a banana at the roof of a building, and at the mean time, provide the monkey with some blocks. If the monk...原创 2019-02-11 23:30:14 · 361 阅读 · 0 评论 -
dp训练计划——hdu1024最大子段和
题目链接:https://vjudge.net/problem/HDU-1024题目大意:给你一个长度为n的序列,让你求出把这个序列分为m个不相交子段的最大和。题解:从今天开始重新刷一起没写完的dp了,开始自闭之旅。首先说一下状态:dp[i][j]表示在前j个数中分成i个子段的最大值,并且最大值以第j项结尾状态转移方程:dp[i][j]=max(dp[i][j-1]+...原创 2020-02-26 22:55:31 · 216 阅读 · 0 评论 -
2019牛客国庆集训派对day5E题
题目链接:https://ac.nowcoder.com/acm/contest/1110/E题意理解:给出一组数字序列,求每次删掉一个数字之后序列的所有 f[i]^2的异或和,f[i]表示以i为结尾的LIS长度。题解:第一眼是直接LIS暴力来做,不能用经典的LIS做法来求,O(n^3)肯定会炸,然后想了想,可以用O(nlogn)二分贪心优化的LIS来求 f 数组,本来以为就这么简...原创 2019-10-05 23:44:24 · 138 阅读 · 0 评论 -
2019牛客国庆集训day5L题
题目链接:https://ac.nowcoder.com/acm/contest/1110/L题意理解:给你一个含有n个数的数组,任意取四个元素相乘,求所有乘积的和(对1e9+7取模)。题解:有两种做法,dp和根据题目中的公式来做,果断选择dp,而且代码还短。dp[i][j]表示前i个数,任意选j个数的乘积的和为多少。状态转移方程:dp[i][j]=(dp[i-1][...原创 2019-10-05 22:44:14 · 109 阅读 · 0 评论 -
Robberies ——01背包变形(思维题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2955Problem DescriptionThe aspiring Roy the Robber has seen a lot of American movies, and knows that the bad guys usually gets caught in the end, oft...原创 2019-07-25 17:01:08 · 329 阅读 · 0 评论 -
hdu1160——二维LIS+输出路径
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1503FatMouse believes that the fatter a mouse is, the faster it runs. To disprove this, you want to take the data on a collection of mice and put as la...原创 2019-07-27 16:59:15 · 201 阅读 · 0 评论 -
hdu1503——LCS路径输出
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1503The company "21st Century Fruits" has specialized in creating new sorts of fruits by transferring genes from one fruit into the genome of another o...原创 2019-07-27 16:54:12 · 209 阅读 · 0 评论 -
poj2250——LCS记录路径
题目链接:http://poj.org/problem?id=2250In a few months the European Currency Union will become a reality. However, to join the club, the Maastricht criteria must be fulfilled, and this is not a trivial ...原创 2019-07-27 16:49:57 · 189 阅读 · 0 评论 -
poj1836——正逆两次dp求最大值
题目链接:http://poj.org/problem?id=1836In the army, a platoon is composed by n soldiers. During the morning inspection, the soldiers are aligned in a straight line in front of the captain. The captain i...原创 2019-07-27 16:24:16 · 429 阅读 · 0 评论 -
DP基础题型总结(01背包和LIS以及LCS)
今天做了学长拉的LIS和LCS以及背包问题的专题,因此就在这做个总结。首先讲一下关于背包问题,背包中最关键的无非就是01背包,以及完全背包,而且这两个代码也都很好写,也很好理解(就循环遍历的顺序变了),除此之外还有多重背包,二维费用的背包,以及混合背包,但万变不离其宗,都是由01背包演变而来,而且大都可以变成01背包的形式。关于背包问题的讲解,大家可以去网上搜一下dd大佬的背包九讲,这...原创 2019-07-25 22:04:50 · 267 阅读 · 0 评论 -
hdu2639——01背包+第k优解问题
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2639The title of this problem is familiar,isn't it?yeah,if you had took part in the "Rookie Cup" competition,you must have seem this title.If you haven...原创 2019-07-25 21:28:30 · 317 阅读 · 0 评论 -
hdu1171-——多重背包理解
原文链接:http://acm.hdu.edu.cn/showproblem.php?pid=1171Nowadays, we all know that Computer College is the biggest department in HDU. But, maybe you don't know that Computer College had ever been split i...原创 2019-07-25 19:29:30 · 220 阅读 · 3 评论 -
hdu2546——01背包理解
原文链接:http://acm.hdu.edu.cn/showproblem.php?pid=2546电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额。如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够)。所以大家都希望尽量使卡上的余额最少。某天,食堂中有n种菜出售,每种菜可购买一次。已知每种菜的价格以及...原创 2019-07-25 19:25:29 · 141 阅读 · 0 评论 -
hdu2191——多重背包模板
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2191急!灾区的食物依然短缺!为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买。请问:你用有限的资金最多能采购多少公斤粮食呢?后记:人生是一个充满了变数的生命过程,天灾、人祸、...原创 2019-07-25 19:19:38 · 183 阅读 · 0 评论 -
hdu2602——01背包模板
题目链接:acm.hdu.edu.cn/showproblem.php?pid=2602Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like to collect varies of bones , such as dog’s , cow’s , a...原创 2019-07-25 19:17:00 · 208 阅读 · 0 评论