![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
文章平均质量分 90
兔老大RabbitMQ
我是全站最硬核博主。我话讲完,谁赞成,谁反对?
展开
-
那个谷歌的网红扔鸡蛋的题,来看看教科书式的回答
leetcode顶级难题,谷歌面试天天问,来看看吧,带你来一步一步达到最优解。谷歌不知道问了多少遍,蓝桥杯也出现过,leetcode上是顶级难题,到底是什么题能如此频繁地出现?我们一探究竟吧。原题描述:x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。各大厂商也就纷纷推出各种耐摔型手机。x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上市流通。x星球有很多高耸入云的高塔,刚好可以用来做耐摔测试...原创 2021-03-17 10:35:04 · 15534 阅读 · 69 评论 -
动态规划做多了以后,总结的相关知识
动态规划 Dynamic Programming DP准则动态规划的本质,是对问题状态的定义和状态转移方程的定义。动态规划是通过拆分问题,定义问题状态和状态之间的关系,使得问题能够以递推(或者说分治)的方式去解决。如何拆分问题,才是动态规划的核心。而拆分问题,靠的就是状态的定义和状态转移方程的定义。以LIS为例,重新定义这个问题:给定一个数列,长度为N...原创 2020-01-19 12:33:47 · 6395 阅读 · 52 评论 -
map+DP leetcode446
如果数字序列由至少三个元素组成并且任何两个连续元素之间的差异相同,则称为算术序列。例如,这些是算术序列:1,3,5,7,9 7,7,7,7 3,-1,-5,-9 以下序列是不算术。1, 1, 2, 5, 7给出了由N个数组成的零索引数组A. 该阵列的子序列切片是任何整数序列(P0,P1,...,Pk),使得0≤P0<P1 <... <Pk <N。...原创 2018-10-29 16:04:19 · 4831 阅读 · 25 评论 -
动态规划基础水题提纲
提纲汉诺塔汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。 动态规划:1) 问题具有最优子结构性质。如果问题的最优解所包含的 子问题的...原创 2018-11-04 16:15:13 · 3060 阅读 · 45 评论 -
皇后问题
八皇后问题是一个以国际象棋为背景的问题:如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。八皇后问题可以推广为更一般的n皇后摆放问题:这时棋盘的大小变为n1×n1,而皇后个数也变成n2。而且仅当 n2 ≥ 1 或 n1 ≥ 4 时问题有解。皇后问题是非常著名的问题,作为一个棋盘类问题,毫无疑...原创 2018-11-29 15:44:55 · 21417 阅读 · 112 评论 -
由旅行商问题认识何为状态压缩
动态规划动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程(multistep decision process)的优化问题时,提出了著名的最优化原理(principle of optimality),把多阶段过程转化为一系列单阶段问...原创 2018-12-13 16:52:40 · 5757 阅读 · 54 评论 -
【精品计划0】蓝桥杯 摔手机
原题描述:x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。各大厂商也就纷纷推出各种耐摔型手机。x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上市流通。x星球有很多高耸入云的高塔,刚好可以用来做耐摔测试。塔的每一层高度都是一样的,与地球上稍有不同的是,他们的第一层不是地面,而是相当于我们的2楼。...原创 2018-12-04 18:07:32 · 25629 阅读 · 233 评论 -
数组精选题目三连(5)
子数组的最大累加和问题输入一个整形数组,求数组中连续的子数组使其和最大。比如,数组x应该返回 x[2..6]的和187.这四个代码完成的功能都是求最大子数组(注意用词准确,子数组连续,子序列可以不连续)。1)for(i = 1; i <= n; i++) scanf("%d", &num[i]);ans = num[1]; for(i = 1; i ...原创 2019-06-03 15:57:30 · 3152 阅读 · 33 评论 -
多校一道KMP+DP的题
难啊,多校当时根本不会做题目描述White Cloud has a rectangle carpet of n*m. Grid (i,j) has a color colorA[i][j] and a cost costA[i][j].White Rabbit will choose a subrectangle B of p*q from A and the color of ea...转载 2019-06-14 18:12:55 · 2923 阅读 · 27 评论 -
【精品计划1】动态规划入门到熟悉,看不懂来打我啊
持续更新。。。。。。2.1斐波那契系列问题2.2矩阵系列问题2.3跳跃系列问题3.1 01背包3.2 完全背包3.3多重背包3.4 一些变形选讲2.1斐波那契系列问题在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)根据定义,前十项为1, 1, 2, 3...原创 2019-11-26 11:15:40 · 93743 阅读 · 507 评论 -
单调队列优化的背包问题
对于背包问题,经典的背包九讲已经讲的很明白了,本来就不打算写这方面问题了。但是吧。我发现,那个最出名的九讲竟然没写队列优化的背包。。。。那我必须写一下咯嘿嘿,这么好的思想。我们回顾一下背包问题吧。01背包问题题目有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总...原创 2018-10-12 12:18:41 · 11485 阅读 · 106 评论 -
字符串上的简单动态规划
因为数据结构快学串了,以前又做过一些字符串dp的题,今天突然就想把它们写在一起吧。 直接开始问题1:给两个字符串,求最长公共子串问题2:给两个字符串,求最长公共子序列问题3:给一个字符串,求最长回文子串问题4:给一个字符串,求最长回文子序列问题5:给一个字符串,求将这个字符串变为回文串需要插入的最少字符个数。问题6:最小编辑代价问题7:判断交错组成问题8:给...原创 2018-09-13 14:18:26 · 5640 阅读 · 32 评论 -
dp打开思路4:POJ1189 UVA12511 HDU2845 HBCPC K
POJ1189http://poj.org/problem?id=1189怎么说呢,不算难,但是容易出问题我一开始的思路是,第一个钉子只有一种情况,然后下面每个钉子:左边有钉子就加左边的情况数,右边有钉子就加右边的情况数,上边没钉子就加就加上上面的情况。(加情况均是因为小球可以到这里)我们想到的就是概率问题,这样用情况数量做的话,情况数量统计的确实没错,我想最后把某个位置情况除以总...原创 2018-08-19 13:48:37 · 4613 阅读 · 30 评论 -
简单暴力到dp的优化(入门篇)
上篇,我们提到,遇到问题,首先根据定义写出笨方法,找出依赖关系(有些题这一步就不太简单,要自己归纳关系),然后进行优化,下面,我们通过几道此方面的经典的,较为简单的二维题目进行讲解。开始根据题来说明:第一个萌新题给定数组arr, arr 中所有的值都为正数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张, 再给定一个整数aim 代表要找的钱数,求组成aim ...原创 2018-04-16 18:14:58 · 4789 阅读 · 45 评论 -
简单暴力到dp的优化(初级篇)
一、一维非脑残1一个只包含'A'、'B'和'C'的字符串,如果存在某一段长度为3的连续子串中恰好'A'、'B'和'C'各有一个,那么这个字符串就是纯净的,否则这个字符串就是暗黑的。例如:BAACAACCBAAA 连续子串"CBA"中包含了'A','B','C'各一个,所以是纯净的字符串AABBCCAABB 不存在一个长度为3的连续子串包含'A','B','C',所以是暗黑的字符串你的任务就...原创 2018-05-06 11:06:45 · 2750 阅读 · 57 评论 -
ccpc河北大学生程序设计竞赛dp小总结
近期题目来自校赛,赛前训练,省赛热身,河北ccpc正式比赛。题目一:题目描述:由于第m个台阶上有好吃的薯条,所以薯片现在要爬一段m阶的楼梯.薯片每步最多能爬k个阶梯,但是每到了第i个台阶,薯片身上的糖果都会掉落ai个,现在问你薯片至少得掉多少糖果才能得到薯条?输入:多组数据输入,每组数据第一行输入两个数字m(1<m<=1000),k(1<=k<m),接...原创 2018-05-22 11:07:52 · 11058 阅读 · 106 评论 -
简单暴力到dp的优化(中级篇)
下面再放三道我比较喜欢的,需要好好写一下的题。第一题比较水1. White Cloud is exercising in the playground. White Cloud can walk 1 meters or run k meters per second. Since White Cloud is tired,it can't run for two or more conti...原创 2018-07-30 19:42:21 · 2854 阅读 · 22 评论 -
dp打开思路:HDU1029 HDU1087 HDU1176 HDU1257 POJ1458(水题不水)
题目:https://vjudge.net/contest/68966#overviewHDU - 1029题意:找出出现次数超过一半的数字蠢思路:排序找中间DP:扫一遍一个变量count记录解出现的次数,是当前解就++,否则--,count为负就换掉当前解。(解释:想象解全都挨在一起(前面),count先达到最大,然后减为1或0,而其他数字先出现,可能会使正确解的count减为负...原创 2018-08-03 16:34:43 · 3435 阅读 · 44 评论 -
dp打开思路2:POJ2533 HDU1114 HDU1260 HDU1160(水题不水)
题目:https://vjudge.net/contest/68966#overviewPOJ2533最长上升子序列,很平常的题,但是维持单调队列+二分还是值得一贴的,O(nlogn)关键思想:出现在单调队列里的数都在当前接收的数之前,所以找到最小的比他大的数替换即可,而替换的位置其实就相当于它的DP[i],只是已经没有记录的必要了。如果是当前最大就放到最后,cnt++。最后单调数...原创 2018-08-03 20:27:53 · 3560 阅读 · 40 评论 -
动态规划概述
注:第一次看不需要全理解,以后动态规划做多了,再回来看看,会有更深的理解先符上其它文章,看完这篇就可以开始看这些咯。萌新: https://blog.csdn.net/hebtu666/article/details/79912328入门: ...原创 2018-08-17 14:51:44 · 4502 阅读 · 49 评论 -
动态规划-背包是否装满
很简单但是需要特别注意的,一定不要错。背包:有n 种不同的物品,每个物品有两个属性,v体积,c价值,现在给一个体积为 m 的背包,问最多可带走多少价值的物品。状态转移方程dp[i][j]=max(dp[i-1][j],dp[i-1][j-v[i]]+c[i])dp[i-1][j]表示不放第i件物品的最大价值,dp[i-1][j-v[i]]+c[i]表示放第i件物品的最大价...原创 2018-08-17 18:17:17 · 7809 阅读 · 48 评论 -
dp打开思路3:HDU1069 POJ3616 POJ1088
HDU 1069题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1069题意:把给定的长方体(不限)叠加在一起,叠加的条件是,上面一个长方体的长和宽都比下面长方体的长和宽短;求这些长方体能叠加的最高的高度.(其中(3,2,1)可以摆放成(3,1,2)、(2,1,3)等).思路:其实就是求最长的单调递减序列。在长和宽的递减下,求最大能得出...原创 2018-08-18 17:54:37 · 4893 阅读 · 53 评论 -
简单暴力到dp的优化(萌新篇)
想写一系列文章,总结一些题目,看看解决问题、优化方法的过程到底是什么样子的。系列问题一:斐波那契数列问题在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)根据定义,前十项为1, 1, 2, 3, 5, 8, 13, 21, 34, 55问题一:给定一个正整数n,求出斐波那契数列第n项(...原创 2018-04-12 13:19:49 · 12460 阅读 · 111 评论