
动态规划
你倒是敲代码啊.
韶光易逝,劝君惜取少年时。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
uva1631-Locker(记忆化搜索)
DescriptionA password locker with N digits, each digit can be rotated to 0-9 circularly.You can rotate 1-3 consecutive digits up or down in one step.For examples:567890 → 567901 (by rotating the l...原创 2020-01-21 12:36:41 · 547 阅读 · 0 评论 -
Free Candies UVA - 10118(记忆化搜索)
DescriptionLittle Bob is playing a game. He wants to win some candies in it - as many as possible.There are 4 piles, each pile contains N candies. Bob is given a basket which can hold at most 5 cand...原创 2020-01-17 13:43:09 · 223 阅读 · 0 评论 -
uva 1347 - Tour(双调欧几里得旅行商问题)
题目链接Description给定平面上n个点的坐标(按照x递增的顺序给出。各点的x坐标不同,且均为正整数),你的任务是设计一条路线,从最左边的点出发,走到最右边的点然后返回,要求除了最左边和最右边的点之外每个点恰好经过一次,且路径的总长度最短。两点之间的距离为他们的欧几里得距离。下图(b)对应双调欧几里得旅行商问题的最优解。 ...原创 2020-01-08 14:08:18 · 348 阅读 · 0 评论 -
By Elevator or Stairs?(codeforces 1249E, dp)
题目连接http://codeforces.com/contest/1249/problem/E大意从第i层到第i+1层有两种方式,分别是走楼梯和走电梯,但是在走电梯的时候需要等候电梯开门花费一定的时间。问从第一层到每一层的最短时间是多少。解析状态转移方程:dp[0][i]表示从第i-1层走楼梯到第i层,dp[1][i]表示坐电梯从i-1层到第i层。状态转移方程如下...原创 2020-01-07 10:33:10 · 194 阅读 · 0 评论 -
Beans (HDU2845)(最大不连续子列和)
DescriptionBean-eating is an interesting game, everyone owns an M*N matrix, which is filled with different qualities beans. Meantime, there is only one bean in any 1*1 grid. Now you want to eat the ...原创 2020-01-03 10:10:23 · 183 阅读 · 0 评论 -
HDU1203(01背包)
DescriptionSpeakless很早就想出国,现在他已经考完了所有需要的考试,准备了所有要准备的材料,于是,便需要去申请学校了。要申请国外的任何大学,你都要交纳一定的申请费用,这可是很惊人的。Speakless没有多少钱,总共只攒了n万美元。他将在m个学校中选择若干的(当然要在他的经济承受范围内)。每个学校都有不同的申请费用a(万美元),并且Speakless估计了他得到这个学校off...原创 2020-01-02 14:07:19 · 124 阅读 · 0 评论 -
HDU1171 Big Event in HDU (多重背包模板)
DecsriptionNowadays, 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 into Computer College and Software Colleg...原创 2020-01-02 10:47:41 · 228 阅读 · 1 评论 -
命运 HDU - 2571
Description穿过幽谷意味着离大魔王lemon已经无限接近了!可谁能想到,yifenfei在斩杀了一些虾兵蟹将后,却再次面临命运大迷宫的考验,这是魔王lemon设下的又一个机关。要知道,不论何人,若在迷宫中被困1小时以上,则必死无疑!可怜的yifenfei为了去救MM,义无返顾地跳进了迷宫。让我们一起帮帮执着的他吧!命运大迷宫可以看成是一个两维的方格阵列,如下图所示:yifen...原创 2020-01-01 14:26:11 · 210 阅读 · 0 评论 -
最大完全子块
DescriptionA histogram is a polygon composed of a sequence of rectangles aligned at a common base line. The rectangles have equal widths but may have different heights. For example, the figure on th...原创 2020-01-01 09:55:32 · 527 阅读 · 1 评论 -
HDU - 2859(Phalanx)(dp,最大对称子图)
题目大意:给出一个n*n的字符矩阵,要求在矩阵当中选出一个m*m(m <= n)的矩阵,使得该m*m的矩阵关于副对角线对称,问m的最大值。问题分析:我们用dp[i][j]表示如果ch[i][j]是所选矩阵的左下角的一个元素时,所选矩阵的最大阶数。我们考虑如下的情况: 1 2 3 4 1 z a b a 2 c...原创 2019-08-22 16:21:24 · 245 阅读 · 0 评论 -
Gym - 101873I(Überwatch)(dp)
题目大意:给你n个数,在n个数中从前往后选取几个数,使得选取数的和尽可能的大,但是相邻两次选取的数的下标至少间隔m,(第一次最早选取的数是a[i + m],如果选取了a[i],那么下一次的选取最早是a[i + m])。求最大值。问题分析:思路1:用dp[i]表示当前的得分的最大值,那么我们知道当i <= m的时候,dp[i] = 0;当i >= m + 1时,这时我...原创 2019-08-21 16:26:47 · 256 阅读 · 0 评论 -
HDU-1024(Max Sum Plus Plus)(dp)
题目大意:给你长为n的序列,从中取出不相交的m段,使得的m段的和最大,求出最大和。问题分析:我们用动态规划的思想来考虑这个问题,我们采用二维dp数组dp[i][j],那么dp[i][j]所表示的含义是,当j属于第i段时下标1-j被分成i段的最优解,也就是说j一定是在第i段尾部,那么对于任意的j,i的取值范围就是[1, j],这样的一个闭区间,因为一个区间内的数的个数至少是一个。下面...原创 2019-08-18 23:18:44 · 127 阅读 · 0 评论 -
HDU - 1074(Doing Homework)(状压dp)
题目大意:现在有n门课程的作业需要你来做,但是每个作业都有完成的最后期限,超过期限一天会扣一分,现在给出科目的名称,最后期限,完成该门课程所需要的时间,求出最少的扣分,并给出作业的完成顺序。状压dp:状压的意思是对状态进行压缩,用某个数的二进制表示当前的状态,比如我现在有3门课程的作业需要完成,假设现在是第t天,假设三门课程分别是A、B、C,0表示现在这门课的作业没有完成,1表示现在这...原创 2019-08-19 13:58:22 · 370 阅读 · 0 评论 -
HDU - 1176(免费馅饼)(dp,数塔)
题目大意:天上掉馅饼了,告诉你第t秒时会在哪些位置掉落馅饼,每一秒你可以移动一格,如果你的初始位置是5,馅饼掉落范围是[0,10],你只能收集你所在的位置或者是你左右位置的馅饼,问最大收集的馅饼的数量是多少。题目分析:我们反向考虑从[0,10]之内的某个位置在最后一秒开始收集,让时间倒流,最后当时间为0你在初始位置5时的最大数目,跟题目是等价的。自下向上收集我们自然的想到数塔,因此...原创 2019-08-19 15:56:20 · 202 阅读 · 0 评论 -
HDU - 1087(Super Jumping! Jumping! Jumping!)(dp)
题目大意:给出n个数的序列,求出上升子列的最大和。问题分析:我们采用一维的dp数组,dp[i]的含义就是以i作为上升子列的最后一位时该上升子列的和。我们从前往后遍历序列的每一位,那么对于a[i]可能存在以下两种情况:1.前面存在比a[i]小的数a[j],那么dp[i] = max{dp[j]} + a[i];2.前面不存在一个比a[i]小的数,那么只能a[i]自己形成一个上...原创 2019-08-19 16:59:33 · 129 阅读 · 0 评论 -
HDU - 1260(Tickets)(dp)
题目大意:现在有n个人要买票,这n个人可以选择自己单独买票,也可以跟前面或者后面的人一起买票,现在告诉你每个人单独买票花费的时间以及相邻两个人买票花费的时间,问最少要花掉多少时间让每个人都卖完票。题目分析:用dp的思想去考虑这个问题,我们用dp[i]表示,到第i个人为止前面的人包括第i个人全买完票要花费的时间。那么我们考虑状态转移方程,其实第i个人与后面的第i+1个人一起买票,第i...原创 2019-08-20 09:23:22 · 227 阅读 · 0 评论 -
HRBUST - 1835(最长上升子序列)
题目大意:给出一个数字序列求其最长的递增子序列;例如序列(1,7,3,5,9,4,8);(1,7)和(3,4,8)是其递增子序列但其最长的递增子序列是(1,3,5,8)。问题分析:用动态规划的思想去考虑,dp[i]表示以a[i]结尾的最长上升子序列的长度,那么如果a[i]的前面存在a[j](j < i),dp[i] = dp[j] + 1;因此我们遍历一遍,查看a[i...原创 2019-08-20 11:58:00 · 225 阅读 · 0 评论 -
HDU - 1160(FatMouse's Speed)(dp最长上升子序列)
题目大意:给你好多只老鼠的重量,行走速度,要求选出多只老鼠,使得重量增大时速度变小,问最多有多少只这样的老鼠,给出其中的一个排列。题目分析:有点像上升子列的意思但是有两个维度,我们可以按照质量排序之后,求一次速度最长上升子列然后输出就可以了。代码:#include <bits/stdc++.h>using namespace std;const int ma...原创 2019-08-20 13:32:01 · 303 阅读 · 0 评论 -
HDU - 1078(FatMouse and Cheese)(记忆化搜索)
题目大意:给你一个n*n的方格,每个格子上标有数字,你每次最多移动k个格子,并且只能一直沿着上下左右四个方向中的一个方向移动,问移动路线上所做停留点的数字之和最大是多少。问题分析:我们用dp+搜索的思路来解决这个问题,dp[x][y]表示从(x,y)点出发能够得到的最大和,那么我假设现在dp[x][y]的最大值已经知道,那么我只要走到(x,y)这里就不用再往后走了,因为最大值我已经知道...原创 2019-08-20 15:02:01 · 237 阅读 · 0 评论 -
Gym - 102082B(Arithmetic Progressions )(dp)
题目大意 给你n个数,从中选取尽可能多的数形成一个等差数列,求等差数列的最大长度。原创 2019-08-18 16:04:51 · 193 阅读 · 0 评论