动态规划(DP)
文章平均质量分 64
爱吃老谈酸菜的DV
选择适合自己的。
展开
-
Codeforces Round #605 (Div. 3):D. Remove One Element【思维+DP?】
DiscriptionYou are given an array a consisting of n integers.You can remove at most one element from this array. Thus, the final length of the array is n−1 or n.DYour task is to calculate the maxim...原创 2019-12-13 21:19:34 · 227 阅读 · 0 评论 -
51 nod 1020 逆序排列
描述在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。如2 4 3 1中,2 1,4 3,4 1,3 1是逆序,逆序数是4。1-n的全排列中,逆序数最小为0(正序),最大为n*(n-1) / 2(倒序)给出2个数n和k,求1-n的全排列中,逆序数为k的排列有多少种?例如:n = 4 k = 3。...原创 2019-11-28 17:19:24 · 212 阅读 · 0 评论 -
POJ 3252:Round Numbers【数位DP】
DiscriptionThe cows, as you know, have no fingers or thumbs and thus are unable to play Scissors, Paper, Stone’ (also known as ‘Rock, Paper, Scissors’, ‘Ro, Sham, Bo’, and a host of other names) in o...原创 2019-11-25 22:08:52 · 143 阅读 · 0 评论 -
HDU 4734 :F(x)【数位DP】
DiscriptionFor a decimal number x with n digits (A nA n-1A n-2 … A 2A 1), we define its weight as F(x) = A n * 2 n-1 + A n-1 * 2 n-2 + … + A 2 * 2 + A 1 * 1. Now you are given two numbers A and B, pl...原创 2019-11-25 21:06:45 · 164 阅读 · 0 评论 -
POJ1170 Shopping Offers(五维背包)
DiscriptionIn a shop each kind of product has a price. For example, the price of a flower is 2 ICU (Informatics Currency Units) and the price of a vase is 5 ICU. In order to attract more customers, ...原创 2019-11-14 19:51:13 · 256 阅读 · 0 评论 -
HDU 4489 The King’s Ups and Downs(组合DP)
DiscriptionThe king has guards of all different heights. Rather than line them up in increasing or decreasing height order, he wants to line them up so each guard is either shorter than the guards ne...原创 2019-11-04 20:31:53 · 246 阅读 · 0 评论 -
poj 3211:Washing Clothes (分组01背包)
DiscriptionDearboy was so busy recently that now he has piles of clothes to wash. Luckily, he has a beautiful and hard-working girlfriend to help him. The clothes are in varieties of colors but each ...原创 2019-11-03 11:58:17 · 207 阅读 · 0 评论 -
数位DP入门详解
那么假设我们第一次枚举了百位是0,显然后面的枚举limit=false,也就是数位上0到9的枚举,然后当我十位枚举了1,此时考虑dp[0][1],就是枚举到个位,前一位是1的个数,显然dp[0][1]=9;(个位只有是1的时候是不满足的),这个状态记录下来,继续dfs,一直到百位枚举了2,十位枚举了1,显然此时递归到了pos=0,pre=1的层,而dp[0][1]的状态已经有了即dp[pos][pre]!=-1;此时程序直接return dp[0][1]了,然而显然是错的,因为此时是有limit的个位只能枚转载 2019-10-24 20:36:21 · 354 阅读 · 0 评论 -
51nod:1051 最大子矩阵和
描述一个M*N的矩阵,找到此矩阵的一个子矩阵,并且这个子矩阵的元素的和是最大的,输出这个最大的值。例如:3*3的矩阵:-1 3 -12 -1 3-3 1 2和最大的子矩阵是:3 -1-1 31 2输入第1行:M和N,中间用空格隔开(2 <= M,N <= 500)。第2 - N + 1行:矩阵中的元素,每行M个数,中间用空格隔开。(-10^9 <= M[i...原创 2019-10-17 17:47:57 · 181 阅读 · 0 评论 -
1086 背包问题 V2(二进制优化多重背包)
描述有N种物品,每种物品的数量为C1,C2…Cn。从中任选若干件放在容量为W的背包里,每种物品的体积为W1,W2…Wn(Wi为整数),与之相对应的价值为P1,P2…Pn(Pi为整数)。求背包能够容纳的最大价值。输入第1行,2个整数,N和W中间用空格隔开。N为物品的种类,W为背包的容量。(1 <= N <= 100,1 <= W <= 50000)第2 - N + 1...原创 2019-10-15 19:29:22 · 206 阅读 · 0 评论 -
51nod1134 最长递增子序列(基础dp+优化)
描述:给出长度为N的数组,找出这个数组的最长递增子序列。(递增子序列是指,子序列的元素是递增的)例如:5 1 6 8 2 4 5 10,最长递增子序列是1 2 4 5 10。输入第1行:1个数N,N为序列的长度(2 <= N <= 50000)第2 - N + 1行:每行1个数,对应序列的元素(-10^9 <= S[i] <= 10^9)输出输出最长递增子序列...原创 2019-10-13 15:18:12 · 164 阅读 · 0 评论 -
2019年10月2日训练日记
最近一直再看状态压缩DP。我觉得状压DP就是利用二进制记录状态,利用位运算进行状态转移的一个完全暴力的算法。最近看题总是看到一种题型就是给定一个n行m列的格子,往格子上放东西,问最多可以放多少,或者是在某个位置放一个,然后其上下左右都不能再放,或者是放一个特定形状的格子,这一类题都可以考虑使用状压DP求解,每一行用一个二进制数记录状态,每一位的0,1记录取或不取,拿或没拿,走过或没走过,可以用它...原创 2019-10-02 22:21:01 · 291 阅读 · 0 评论 -
2019年秦皇岛区域赛I题:Invoker(动态规划)
Problem Description在 dota2 中有一个叫做祈求者(Invoker)的英雄,在游戏中他有三个基础技能:冰(Quas),雷(Wex),火(Exort),每施展一个技能就可以获得相应属性的一个法球(element)。但是祈求者同时最多只能有三个法球,即如果他在有三个法球的状态下又使用了某个法球技能,那么他会获得该法球,并失去之前三个法球中最先获得的一个。不难得出,祈求者身上...原创 2019-09-28 17:05:28 · 582 阅读 · 0 评论 -
题目整理(DP)
1.AcWing272:最长公共上升子序列(经典DP)题意:就是求解两个字符串的最大上升公共子序列。 思路:需要结合最大上升子序列和最长公共自序里啊两个题来进行求解。 博客链接:https://blog.csdn.net/weixin_43460224/article/details/1011755402.hdoj 2084 数塔问题(经典DP)题意:给定一个数塔,求解从顶部走到底部...原创 2019-09-22 23:21:55 · 2097 阅读 · 0 评论 -
AcWing272:最长公共上升子序列(经典DP)
最近开始刷DP题,先从简单的开始吧。题目链接:https://www.acwing.com/problem/content/274/题目描述:熊大妈的奶牛在小沐沐的熏陶下开始研究信息题目。小沐沐先让奶牛研究了最长上升子序列,再让他们研究了最长公共子序列,现在又让他们研究最长公共上升子序列了。小沐沐说,对于两个数列A和B,如果它们都包含一段位置不一定连续的数,且数值是严格递增的,那么称这...原创 2019-09-22 22:36:01 · 313 阅读 · 0 评论 -
矩形嵌套(DP)
Discription有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b<d或者b<c,a<d(相当于旋转X90度)。例如(1,5)可以嵌套在(6,2)内,但不能嵌套在(3,4)中。你的任务是选出尽可能多的矩形排成一行,使得除最后一个外,每一个矩形都可以嵌套在下一个矩形内。Input第一行是一个正正数N(...原创 2019-09-05 17:38:29 · 232 阅读 · 0 评论 -
CodeForces - 262D:Maxim and Restaurant(期望DP)
DiscriptionMaxim has opened his own restaurant! The restaurant has got a huge table, the table’s length is p meters.Maxim has got a dinner party tonight, n guests will come to him. Let’s index the g...原创 2019-08-21 10:27:03 · 227 阅读 · 0 评论 -
CodeForces - 255C
DiscriptionGena loves sequences of numbers. Recently, he has discovered a new type of sequences which he called an almost arithmetical progression. A sequence is an almost arithmetical progression, i...原创 2019-08-19 23:54:38 · 122 阅读 · 0 评论 -
POJ 1745 Divisibility(背包)
DescriptionConsider an arbitrary sequence of integers. One can place + or - operators between integers in the sequence, thus deriving different arithmetical expressions that evaluate to different val...原创 2019-04-10 15:00:53 · 119 阅读 · 0 评论 -
POJ1316 Milking Time(DP)
DescriptionBessie is such a hard-working cow. In fact, she is so focused on maximizing her productivity that she decides to schedule her next N (1 ≤ N ≤ 1,000,000) hours (conveniently labeled 0…N-1) ...原创 2019-04-10 14:42:18 · 153 阅读 · 0 评论 -
区间DP
一、定义区间DP主要是把一个大区间拆分成几个小区间,在每个区间上进行DP,先求小区间的最优值,然后合并起来求大区间的最优值。二、一般区间DP实现代码memset(dp, 0x3f, sizeof(dp));//0x3f3f3f3f的每个字节都是0x3f,所以要把一段内存全部置为无穷大,我们只需要memset(a,0x3f,sizeof(a))。最精巧的无穷大常量取值是0x3f3f3f3f。...原创 2019-04-10 14:23:47 · 195 阅读 · 0 评论 -
背包基础
一、0-1背包1.题目:有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。2.特点:每种物品仅有一件,可以选择放或不放3.f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是:f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]+w[i]}4.只考虑第i件物品...原创 2019-04-01 23:43:57 · 187 阅读 · 0 评论 -
HDU - 1978 How many ways (DP)
题目:这是一个简单的生存游戏,你控制一个机器人从一个棋盘的起始点(1,1)走到棋盘的终点(n,m)。游戏的规则描述如下:1.机器人一开始在棋盘的起始点并有起始点所标有的能量。2.机器人只能向右或者向下走,并且每走一步消耗一单位能量。3.机器人不能在原地停留。4.当机器人选择了一条可行路径后,当他走到这条路径的终点时,他将只有终点所标记的能量。如上图,机器人一开始在(1,1)点,并拥有4...原创 2019-03-31 20:26:18 · 164 阅读 · 0 评论 -
HDU2577:How to Type(DP)
题目:Pirates have finished developing the typing software. He called Cathy to test his typing software. She is good at thinking. After testing for several days, she finds that if she types a string by ...原创 2019-03-31 20:08:28 · 200 阅读 · 0 评论 -
对于DP题的认识总结
一、认识最近一直在做动态规划的题,题不是很好做,但是只要知道了做题思路方法其实题也不难。动态规划本质上应该就是数学题吧,要用数学的思路把这个题解出来,列出来状态转移方程,然后根据状态转移方程把代码写出来就很简单了。可见学好数学是多么重要!但是我们往往就输在了第一步,状态转移方程都列不出来,那后面的都不用想了。这就需要我们多做题,对做过的题稍作分类总结,应该能发现其中的规律性。状态转移方程很...原创 2019-03-30 10:44:10 · 262 阅读 · 0 评论 -
hdu 2191 多重背包问题
题目:急!灾区的食物依然短缺!为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买。请问:你用有限的资金最多能采购多少公斤粮食呢?后记:人生是一个充满了变数的生命过程,天灾、人祸、病痛是我们生命历程中不可预知的威胁。月有阴晴圆缺,人有旦夕祸福,未来对于我们而言是一个未知数。那...原创 2019-03-31 19:57:21 · 146 阅读 · 0 评论 -
动态规划-搬寝室
题目搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件物品,xhd开始发呆,因为n是一个小于2000的整数,实在是太多了,于是xhd决定随便搬2k件过去就行了.但还是会很累,因为2k也不小是一个不大于n的整数.幸运的是xhd根据多年的搬东西的经验发现每搬一次的疲劳度是和左右手的物品的重量差的平方成正比(这里补...原创 2019-03-29 21:46:56 · 219 阅读 · 0 评论 -
最大 m 子段和问题
转载:https://blog.csdn.net/winter2121/article/details/72848482一、定义给定由n个整数(可能为负)组成的序列a1、a2、a3…,an,以及一个正整数m,要求确定序列的m个不相交子段,使这m个子段的总和最大!特别注意:有些题目可能不存在负数答案,给出的序列全是负数,那么不管m是多少,答案是0。此时选择的子段是0个,不足m个,但符合题意。...转载 2019-03-28 00:01:41 · 2405 阅读 · 0 评论 -
动态规划总结
一、动态规划基本概念1.指导思想:在做每一步决策时,列出各种可能的局部解;依据某种判定条件,舍弃那些肯定不能得到最优解的局部解;以每一步都是最优的来保证全局是最优的;2.基本特征:问题具有多阶段决策的特征。每一阶段都有相应的“状态”与之对应,描述状态的量称为“状态变量”。每一阶段都面临一个决策,选择不同的决策将会导致下一阶段不同的状态。每一阶段的最优解问题可以递归地归结为下一阶段各...原创 2019-03-27 23:03:17 · 257 阅读 · 0 评论 -
动态规划-死亡骑士
题目:不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票(记住,只有一张钞票),为了防止自己在战斗中频繁的死掉,他决定给自己买一些道具,于是他来到了地精商店前.死亡骑士:“我要买道具!”地精商人:“我们这里有三种道具,血瓶150块一个,魔法药200块一个,无敌药水350块一个.”死亡骑士:“好的,给我一个血瓶.”说完他掏出那张N元的大钞递给地精商人.地精商人:“我忘了提醒你了,我们这里...原创 2019-03-26 23:15:22 · 347 阅读 · 0 评论 -
贪心和DP
转载:作者:Shelley Lee链接:https://www.zhihu.com/question/32096465/answer/145473135来源:知乎==本质都是对解空间遍历的剪枝 ==若以原问题为根,各个子问题为各层子树,每层子问题的解为此层的结点dp:从叶到根逐层遍历,过程中每个子问题最优解决定与此前已解决子问题最优解相关,因此用每层最优解代替此层以下所有子树,并且每...转载 2019-03-23 23:07:34 · 1027 阅读 · 0 评论 -
动态规划-最大子序列
题目Given a sequence a[1],a[2],a[3]…a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (-1) + 5 + 4 = 14.InputThe firs...原创 2019-03-24 17:18:48 · 238 阅读 · 0 评论 -
背包问题(模板)
0/1背包给定n个物品,其中第i个物品的提及为vi,价值为wi。将若干个物品放入容量为m的背包,在使物体总体积不超过m的前提下,物品的总价值和最大,求出此时的最大价值。int f[MAX_M+1];memset(f,0,sizeof(f));f[0]=0;for(int i=1; i<=n; i++) for(int j=m; j>=v[i]; j--) ...原创 2019-08-13 23:41:33 · 319 阅读 · 1 评论 -
POJ1651:Multiplication Puzzle(区间DP)
DescriptionThe multiplication puzzle is played with a row of cards, each containing a single positive integer. During the move player takes one card out of the row and scores the number of points equ...原创 2019-04-13 00:12:24 · 146 阅读 · 0 评论