
——动态规划——
文章平均质量分 73
STILLxjy
不要让任何人打乱你生活的节奏
展开
-
小偷能获取的最大金额 & 环形小区 [分类讨论第一家是否能偷]
题目有一个环形的小区,每家有一定的金额,使用nums[]数组表示,小偷进了小区进行偷取。小偷偷了一家后,与这家相邻的家就不能再偷了,请问小偷能偷取的最大金额是多少?思路若小区只是一排,那题目就简单了,简单dp即可。dp[i][0] 表示不偷取第i家,在前i家中可偷取的最大金额dp[i][1] 表示偷取第i家,在前i家中可偷取的最大金额那么可得:dp[i][0] = max(dp[i-1][0], dp[i-1[1])dp[i][1] = dp[i-1][0] + nums[i]现在由于是原创 2020-11-19 12:29:49 · 601 阅读 · 1 评论 -
(POJ 1054)The Troublesome Frog <暴力枚举+剪枝 || DP>
题目链接:http://poj.org/problem?id=1054题意: 给定一个行数和列数固定的网格,再给定若干个点,这些点是使用矩形上网格线交叉点的坐标来唯一确定的R行C列的网格,左上角的坐标为(1,1)右下角的坐标为(R,C),问给定的这些点能够组成最长可能路径是多长. 路径的定义的如下的:由若干连续且间隔相等的点组成,方向可任意,起始点和结束点均在网格之外的任意空间.也就是只要满足网格原创 2017-01-17 20:13:48 · 725 阅读 · 0 评论 -
(HDU 5763)Another Meaning <KMP + dp> 多校训练4
Another Meaning As is known to all, in many cases, a word has two meanings. Such as “hehe”, which not only means “hehe”, but also means “excuse me”. Today, ?? is chating with MeiZi online, MeiZi sen原创 2017-01-15 19:42:52 · 516 阅读 · 0 评论 -
(HDU 5773)The All-purpose Zero <最长上升子序列 + 思维题> 多校训练4
The All-purpose Zero Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1950 Accepted Submission(s): 920Problem Description ?? gets an sequen原创 2017-01-15 12:57:33 · 579 阅读 · 0 评论 -
(POJ 1185)炮兵阵地 <状压DP经典题目>
炮兵阵地 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用”H” 表示),也可能是平原(用”P”表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击范围如图中黑色区域所示: 如果在地图中的灰色所标识的平原上部署一支炮兵部队,则图中的黑色的网格表示它能够攻击到的区原创 2017-01-06 15:04:44 · 673 阅读 · 0 评论 -
(POJ 3280)Cheapest Palindrome <DP> 回文数变形
Cheapest Palindrome DescriptionKeeping track of all the cows can be a tricky task so Farmer John has installed a system to automate it. He has installed on each cow an electronic ID tag that the syste原创 2017-01-05 11:17:22 · 568 阅读 · 0 评论 -
(POJ 1159)Palindrome <最长公共子序列 / 滚动数组优化 / 记忆化搜索> 简单回文数
Palindrome DescriptionA palindrome is a symmetrical string, that is, a string read identically from left to right as well as from right to left. You are to write a program which, given a string, deter原创 2017-01-05 11:02:59 · 714 阅读 · 0 评论 -
(POJ1376)Cash Machine <多重背包问题变形,二进制优化>
Cash Machine DescriptionA Bank plans to install a machine for cash withdrawal. The machine is able to deliver appropriate @ bills for a requested cash amount. The machine uses exactly N distinct bill原创 2016-11-25 14:49:25 · 592 阅读 · 0 评论 -
(POJ1080)Human Gene Functions <DP,最长公共子序列变形>
Human Gene Functions DescriptionIt is well known that a human gene can be considered as a sequence, consisting of four nucleotides, which are simply denoted by four letters, A, C, G, and T. Biologists原创 2016-11-25 13:00:06 · 447 阅读 · 0 评论 -
(POJ1836)Alignment <DP,最长上升子序列变形>
Alignment DescriptionIn 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 is not satisfied原创 2016-11-24 16:02:24 · 476 阅读 · 1 评论 -
Longest Ordered Subsequence-POJ2533 <O(nlog(n))算法>
Longest Ordered SubsequenceTime Limit: 2000MS Memory Limit: 65536K Total Submissions: 45282 Accepted: 20075 Description A numeric sequence of ai is ordered if a1 < a2 < … < aN. Let the s原创 2016-07-12 18:20:22 · 503 阅读 · 0 评论 -
(POJ3176) Cow Bowling <简单dp>
Cow Bowling DescriptionThe cows don’t use actual bowling balls when they go bowling. They each take a number (in the range 0..99), though, and line up in a standard bowling-pin-like triangle like this原创 2016-11-23 16:34:20 · 364 阅读 · 0 评论 -
(POJ3267)The Cow Lexicon <DP>
The Cow Lexicon DescriptionFew know that the cows have their own dictionary with W (1 ≤ W ≤ 600) words, each containing no more 25 of the characters ‘a’..’z’. Their cowmunication system, based on mooi原创 2016-11-23 15:53:09 · 403 阅读 · 0 评论 -
(LightOJ 1422 Halloween Costumes) 区间DP
Halloween Costumes Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %lluDescription Gappu has a very busy weekend ahead of him. Because, next weekend is Halloween, and he is plan原创 2016-10-19 18:55:55 · 378 阅读 · 0 评论 -
(POJ 1651)Multiplication Puzzle 区间DP (dp思路总结)
Multiplication Puzzle Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 8806 Accepted: 5516 DescriptionThe multiplication puzzle is played with a row of cards, each containing a si原创 2016-10-19 18:49:59 · 490 阅读 · 0 评论 -
(HDU 5791)Two <DP求公共子序列的个数> 多校训练5
Two Problem Description Alice gets two sequences A and B. A easy problem comes. How many pair of sequence A’ and sequence B’ are same. For example, {1,2} and {1,2} are same. {1,2,4} and {1,4,2} are n原创 2017-01-17 20:26:33 · 557 阅读 · 0 评论 -
(HDU 6024 女生专场)Building Shops 简单DP详细解答
Building Shops Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 701 Accepted Submission(s): 265Problem Description HDU’s n classrooms are原创 2017-05-19 08:57:21 · 1982 阅读 · 2 评论 -
(POJ 1949)Chores DAG简单DP
Chores Time Limit: 3000MS Memory Limit: 30000K Total Submissions: 6129 Accepted: 2881 DescriptionFarmer John’s family pitches in with the chores during milking, doing all the chores as quic原创 2017-10-07 16:21:18 · 514 阅读 · 0 评论 -
(LeetCode 343)正数拆分 [简单dp]
题目:给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。分析:设dp[i]表示正数i拆分可以获得的最大值。数 i 可以被分为 j 和 i-j 两部分,并且都比 i 小。所以dp[i] 为这两部分的最大值的乘积。由于i 已经分为了两部分,所以对于 j 和 i-j 而言,它们有两种选择,以j 为例:1:不再拆分,值为他们本身 j。2...原创 2019-10-02 00:04:30 · 229 阅读 · 0 评论 -
(LeetCode 322) 零钱兑换 [简单dp]
题目:给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。示例 1:输入: coins = [1, 2, 5], amount = 11输出: 3 解释: 11 = 5 + 5 + 1示例 2:输入: coins = [2], amount = 3输出: -1思路...原创 2019-10-01 23:38:19 · 224 阅读 · 0 评论 -
(LeetCode 221)最大正方形 [dp & 滚动数组]
题目:在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。示例:输入: 1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0输出: 4分析:方法一:找出最大正方形的面积,换句话说就是找出最大正方形的边长,面积为边长的平方。使用 dp[i][j] = k 表示在矩阵位置(i,j)处,以(i,j)为正方形的右下角的正方形的...原创 2019-10-01 12:15:38 · 222 阅读 · 0 评论 -
(LeetCode 983)最低票价 [简单DP + 可以浪费旅行天数]
983. 最低票价在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为 days 的数组给出。每一项是一个从 1 到 365 的整数。火车票有三种不同的销售方式:一张为期一天的通行证售价为 costs[0] 美元;一张为期七天的通行证售价为 costs[1] 美元;一张为期三十天的通行证售价为 costs[2] 美元。通行证允许数天无...原创 2019-02-20 00:01:53 · 1550 阅读 · 0 评论 -
(LeetCode 740)删除与获得点数 [DP + 打家劫舍变形]
740. 删除与获得点数给定一个整数数组 nums ,你可以对它进行一些操作。每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除每个等于 nums[i] - 1 或 nums[i] + 1 的元素。开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数。示例 1:输入: nums = [3, 4, 2]输出: 6解释:删除 4 来...原创 2019-01-19 22:48:03 · 312 阅读 · 0 评论 -
(LeetCode 152) 乘积最大子序列 [分类讨论 + 问题转换]
152. 乘积最大子序列给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。示例 1:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。分析:设dp[i] 表示前i个数的最大乘积子序列的值。首先,可...原创 2019-01-19 13:54:03 · 297 阅读 · 0 评论 -
(LeetCode 309)最佳买卖股票时机含冷冻期 [dp + 逆向思维]
309. 最佳买卖股票时机含冷冻期给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。示例:输入: [1,2,3,0,2]输出: 3解释: 对应的...原创 2019-01-18 01:30:13 · 354 阅读 · 0 评论 -
(LeetCode 213)打家劫舍 II [DP + 分类讨论]
213. 打家劫舍 II你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [2,3,2]...原创 2019-01-18 00:12:05 · 220 阅读 · 0 评论 -
(LeetCode 123)买卖股票的最佳时机 III [DP只能进行两次交易]
123. 买卖股票的最佳时机 III给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [3,3,5,0,0,3,1,4]输出: 6解释: 在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3...原创 2019-01-06 19:08:56 · 1419 阅读 · 0 评论 -
(LeetCode 279)完全平方数 [简单dp]
279. 完全平方数给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。示例 1:输入: n = 12输出: 3解释: 12 = 4 + 4 + 4.示例 2:输入: n = 13输出: 2解释: 13 = 4 + 9.分析:设dp[m]表示数字m需要的完全平方数的最小数目。那么对于数字nk...原创 2019-01-06 14:56:04 · 317 阅读 · 0 评论 -
(LeetCode 546)移除盒子 [DP经典难题 + DFS]
546. 移除盒子给出一些不同颜色的盒子,盒子的颜色由数字表示,即不同的数字表示不同的颜色。你将经过若干轮操作去去掉盒子,直到所有的盒子都去掉为止。每一轮你可以移除具有相同颜色的连续 k 个盒子(k &gt;= 1),这样一轮之后你将得到 k*k 个积分。当你将所有盒子都去掉之后,求你能获得的最大积分和。示例 1:输入:[1, 3, 2, 2, 2, 3, 4, 3, 1]输出:2...原创 2018-12-19 19:43:50 · 3411 阅读 · 0 评论 -
(LeetCode 72)编辑距离 [动态规划 + 字符串好题]
72. 编辑距离给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例 1:输入: word1 = “horse”, word2 = “ros”输出: 3解释:horse -> rorse (将 ‘h’ 替换为 ‘r’)rorse -> r...转载 2018-10-21 21:45:14 · 243 阅读 · 0 评论 -
(LeetCode 376)摆动序列 [动态规划 O(n) 和 O(n^2) 解答 详细思路 ]
376. 摆动序列如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列...原创 2018-10-16 13:47:36 · 762 阅读 · 0 评论 -
(CCF 201312-4)有趣的数 [DP] 最详细解答
问题描述 我们把一个数称为有趣的,当且仅当: 1. 它的数字只包含0, 1, 2, 3,且这四个数字都出现过至少一次。 2. 所有的0都出现在所有的1之前,而所有的2都出现在所有的3之前。 3. 最高位数字不为0。 因此,符合我们定义的最小的有趣的数是2013。除此以外,4位的有趣的数还有两个:2031和2301。 请计算恰好有n位的有趣的数的个数。由于答案可能非原创 2017-10-21 15:17:40 · 438 阅读 · 0 评论 -
(POJ 2955)Brackets 区间DP 最大括号匹配
Brackets Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6647 Accepted: 3577 DescriptionWe give the following inductive definition of a “regular brackets” sequence:the empty sequ原创 2016-10-18 16:39:42 · 543 阅读 · 0 评论 -
Zoj 3537 Cake (DP_最优三角形剖分)
转自:http://blog.youkuaiyun.com/woshi250hua/article/details/7824433题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3537题目大意:给定n个点的坐标,先问这些点是否能组成一个凸包,如果是凸包,问用不相交的线来切这个凸包使得凸包只由三角形组成,根据costi, j =转载 2016-10-18 15:24:41 · 497 阅读 · 0 评论 -
(HDU 1754)I Hate It 线段树区间查询入门,单点修改
I Hate It Time Limit:3000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u HDU 1754 Description 很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。 这让很多学生很反感。 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模原创 2016-10-02 17:17:35 · 415 阅读 · 0 评论 -
(LA 3942)Remember the Word --DP+Trie树
Remember the WordTime Limit: 3000MS 64bit IO Format: %lld & %lluNeal is very curious about combinatorial problems, and now here comes a problem about words. Knowing that Ray has a photographi原创 2016-08-05 19:54:49 · 447 阅读 · 0 评论 -
(NYoj 171)聪明的kk --水dp
聪明的kk 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 聪明的“KK” 非洲某国展馆的设计灵感源于富有传奇色彩的沙漠中陡然起伏的沙丘,体现出本国不断变换和绚丽多彩的自然风光与城市风貌。展馆由五部分组成,馆内影院播放名为《一眨眼的瞬间》的宽银幕短片,反映了建国以来人民生活水平和城市居住环境的惊人巨变。 可移动“沙丘”变戏法 的灵感源于其独特而雄伟的自然景观原创 2016-08-04 20:37:47 · 574 阅读 · 0 评论 -
(NYoj 214)单调递增子序列(二) --非递归思想模板
单调递增子序列(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 给定一整型数列{a1,a2…,an}(0#include <iostream>#include <cstdio>#include <cstring>#include <cmath>using namespace std;const int N = 100010;int a[N];i原创 2016-08-04 20:33:09 · 394 阅读 · 0 评论 -
(NYoj 201)作业题--最长递增子序列
作业题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 小白同学这学期有一门课程叫做《数值计算方法》,这是一门有效使用数字计算机求数学问题近似解的方法与过程,以及由相关理论构成的学科……今天他们的Teacher S,给他们出了一道作业题。Teacher S给了他们很多的点,让他们利用拉格朗日插值公式,计算出某严格单调函数的曲线。现在小白抄下了这些点,但是问题出现原创 2016-08-04 20:27:37 · 566 阅读 · 0 评论 -
(NYoj 195)飞翔 -- 最长递增子序列
飞翔 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 鹰最骄傲的就是翱翔,但是鹰们互相都很嫉妒别的鹰比自己飞的快,更嫉妒其他的鹰比自己飞行的有技巧。于是,他们决定举办一场比赛,比赛的地方将在一个迷宫之中。 这些鹰的起始点被设在一个N*M矩阵的左下角map[1,1]的左下角。终点被设定在矩阵的右上角map[N,M]的右上角,有些map[i,j]是可以从中间穿越的原创 2016-08-04 20:23:19 · 481 阅读 · 0 评论