动态规划
文章平均质量分 64
code_mlym
学生狗
展开
-
hdu 1176 免费馅饼
又是一道套路水题,思路就是用dp数组记录状态,把当前状态的值相当于设置为X,然后依次返回最终求得初始值X,其中已经经历过的状态已经记录就不会像直接递归那样耗费太多时间,这就是dp的思想。题目链接:https://vjudge.net/problem/HDU-1176#include #include #include using namespace std;int f[3] =原创 2017-01-02 23:37:22 · 1212 阅读 · 0 评论 -
uva 10003 cutting sticks
最近动态规划真的是让人头疼,但是越是难的东西越要坚持!先从简单的开始,一点一点地努力,DP基础题。思路就是和刘大爷的一致。#include #include using namespace std;int l,n;int p[60];int dp[60][60];const int inf = 0x3f3f3f3f;void solve () { for (in原创 2016-12-14 17:46:24 · 308 阅读 · 0 评论 -
石子合并+四边形优化
动态规划的经典题目,在遇到状态转移方程像min(w[i][k]+w[k+1][j]+m[i][j])的时候就可以使用考虑使用四边形优化。在i原创 2016-12-22 22:59:19 · 606 阅读 · 0 评论 -
uva 1629 cake slicing(dp)
A rectangular cake with a grid of m*n unit squares on its top needs to be sliced into pieces. Several cherries are scattered on the top of the cake with at most one cherry on a unit square. The slicin原创 2016-12-23 11:37:02 · 407 阅读 · 0 评论 -
uva 10285 Longest Run on a Snowboard
Longest Run on a SnowboardInput: standard inputOutput: standard outputTime Limit: 5 secondsMemory Limit: 32 MB Michael likes snowboarding. That's not very surprising, since snowboarding is原创 2016-12-24 01:31:48 · 306 阅读 · 0 评论 -
uva 10118 Free Candies
出现了一点问题,题目不能复制过来,主要的大意是有4堆糖果,有一个篮子,这个篮子最多可以装5个糖果,从4堆糖果堆的顶部每次取一个糖果,如果篮子中有颜色相同的一对糖果那么就可以装进口袋里,否则口袋达到5个后就结束游戏。https://vjudge.net/problem/UVA-10118上代码:#include #include #include #define max(a,b)原创 2016-12-25 00:56:18 · 772 阅读 · 0 评论 -
hdu 2599 Robberies
这道题目我也是无语了,自己跟智障一样。非常明显的01背包题目,但是要注意的是这个概率是相乘出来得到的逃脱概率而不是直接相加的,同时最后要注意精度,我也是看了眼界,就是因为这个WA3次。题目链接:https://vjudge.net/problem/HDU-2955#include #include #include using namespace std;const int i原创 2017-01-03 23:28:49 · 430 阅读 · 0 评论 -
hdu 2571 命运
题目大意:在一个迷宫中从出发点以一定的规则去走,走到迷宫的出口,其中迷宫中的每个格子有一定量的数值,求走出迷宫之后积累的最大数值。还是同样的基(shui)础(shui)题,没有什么难度,还是同样用dfs去做,把当前的值权当做设置为X,用dp数组记录已经确定的最优的结果,跟着题目中给的状态一步一步转移就可以!一遍ac。题目链接:https://vjudge.net/problem/HDU-2原创 2017-01-04 01:13:16 · 450 阅读 · 0 评论 -
hdu 1087 Super Jumping! Jumping! Jumping!
vjudge今晚不知道怎么了,抽风了一段时间,于是我接着复习去了,结果又不想复习再一连就连上来了,算了刷刷水题,涨涨自信吧。记忆化搜索dp,思路不说了,注意一下longlong不要溢出就可以。题目链接:https://vjudge.net/problem/HDU-1087#include #include #include using namespace std;const原创 2017-01-04 23:34:00 · 344 阅读 · 0 评论 -
hdu 1505 City Game
这道题目说是动态规划,但是感觉上更加靠近求最大矩形那个套路也就是hdu1506那道题目,有时间再刷吧,真的要考试了,不浪了,思路就是遇到一行中连续的1的时候,比如在第i行[s..e]区间中都是1,那么有是s题目链接:https://vjudge.net/problem/HDU-1505#include #include #include using namespace std;原创 2017-01-05 13:13:36 · 476 阅读 · 0 评论 -
hdu 1506 Largest Rectangle in a Histogram [好题]
这道题目看似很容易,找到比当前边i长的边且位于整个数组的最左边,存储在l[i],同理比当前边长且位于最右边的存储在r[i],于是我照做了,果断TL。。。所以需要优化,这道题目有点像并查集,如果当前边i比左边的边i-1短,那么就可以把左边边的l[i-1]赋给它,其实就是这样一个思路。学到了!这题真棒!题目链接:https://vjudge.net/problem/HDU-1506#inclu原创 2017-01-05 23:33:05 · 359 阅读 · 0 评论 -
uva116 unidirectional TSP 单向TSP (DP)
BackgroundProblems that require minimum paths through some domain appear in many different areas of computer science. For example, one of the constraints in VLSI routing problems is minimizing wire原创 2016-12-13 20:58:30 · 1055 阅读 · 1 评论 -
hdu 1003 Max Sum
今晚把自己的编辑器给折腾了一下,耽误了不少时间,依旧是按照网上大神给出的线路一点一点的练习。这道题目还是水,状态转移方程是dp[i] = max(dp[i-1]+a[i],a[i])得到结果之后再搜索一遍就好,这道题目还要求求出其实位置,末尾位置其实已经知道了,在求其实位置的过程中我采用了遍历的方法。题目链接:https://vjudge.net/problem/HDU-1003#in原创 2017-01-03 21:52:46 · 423 阅读 · 0 评论 -
hdu 2084 数塔
入门水题,做一做涨涨自信还是很好的。。。题目链接:https://vjudge.net/problem/HDU-2084#include #include #include using namespace std;const int maxn = 105;int G[maxn][maxn];int n;int dp[maxn][maxn];int f[2] = {0,-原创 2017-01-02 23:00:53 · 328 阅读 · 0 评论 -
hdu 3466 Proud Merchants
这道题目真是开了眼界,厉害厉害,刚开始直接把q排序了,直接WA,看来神牛的解答之后才明白了要按照q-p去排列,仔细想想看,考虑特殊情况如果q-p=0的时候就是普通的01背包,按照q排肯定是有问题的,但是按照q-p去排其实就是在数组跟新的过程的中影响状态的数目,q-p越大,那么影响后面状态的数目就越大,然而具体的数学证明真的不会,只是用特殊的例子自己推演了几遍。。。题目链接:https://vj原创 2017-01-01 18:10:39 · 393 阅读 · 0 评论 -
hdu 2639 Bone Collector II
这到题目的基本思路就是再开一维数组,dp[i][j][k]代表前i个物品在j重量下的第k解,那么dp[i][j][k]可能的取值有dp[i-1][j][1..k]和dp[i-1][j-w[i]][1..k]+v[i]两个来源,这样只需要将上面两个来源按照大小依次排进dp[i][j][k]之中,同时注意排重操作就可以。题目链接:https://vjudge.net/problem/HDU-263原创 2017-01-01 14:11:47 · 385 阅读 · 0 评论 -
hdu 2602 Bone Collector
这是一道送命题,连这种果题都要WA我是多菜啊,但也还好做了这题,基础还是重要的,一道一道的来,循序渐进,加油!题目链接:https://vjudge.net/problem/HDU-2602#include #include #include using namespace std;const int maxn = 1005;int v[maxn] , w[maxn];in原创 2016-12-31 23:23:12 · 250 阅读 · 0 评论 -
hdu 1171 Big Event in HDU
这个题目一眼就知道出题者的意思,思路秒杀,但是没有用一维数组的时候居然会超时我也是很无语,好想用一维数组或者滚动数组真的可以有效降低时间复杂度之前的常数,大概跟计算机中的读取数据的方式应该是有关系的,看来一维数组和滚动数组还是要多多练习。题目链接:https://vjudge.net/problem/HDU-1171#include #include #include using原创 2016-12-31 22:20:00 · 334 阅读 · 0 评论 -
uva 10163
题目大意:m个仓库n个守卫,选出最有方案,一看就是01包,然而在边界条件上我算是载了大跟头,看来设置初始数据和边界条件还是非常有学问,即使状态转移方程没有问题初始值设置的有问题也不行,同时这个两次DP真的是人想出来的吗?我愉快的在求最小费用上wa了好多次!看来自己还是菜啊,真是弱渣。题目链接:https://vjudge.net/problem/UVA-10163#include #in原创 2016-12-29 01:26:55 · 516 阅读 · 0 评论 -
hdu 2546 饭卡
我靠,这题目完全高头昏了,看了题解之后感觉为什么这么简单。。。看来我还是对01背包不是很敏感,还需要大量的练习,主要思路就是用5元买价值最大的物品,剩下的sum-5买n-1件物品中价值最大的,所以就转化为最简单的01背包问题。自己真是菜啊题目链接:https://vjudge.net/problem/HDU-2546#include #include #include #includ原创 2016-12-31 02:05:03 · 522 阅读 · 0 评论 -
uva 1632 Alibaba
题目大意:lrj306页 习题9-8 想了很久,区间DP的状态意识到了,但是不知道这个怎么和deadline联系起来,最后看别人的解题报告,恍然大悟,原来如此,顺便练了一下滚动数组,还是很有收获的。题目链接:https://vjudge.net/problem/UVA-1632第一份代码没有使用滚动数组,第二份使用了滚动数组,第二份比第一份的速度要上不少。#include #原创 2016-12-27 13:32:09 · 474 阅读 · 0 评论 -
uva 242 Stamps and Envelope Size
题目大意:见lrj紫书205页,习题9-5,这题目做的真的很爽,刚开始用暴力递归,然后想了一下用dp去做了,真正的对递归和dp的内在联系有了一个稍微的了解。主要思路还是用dp[i][j]表示在加入i件物品费用j是否存在,然后dp完了之后在搜索一遍就ok。题目链接:https://vjudge.net/problem/UVA-242#include #include #include原创 2016-12-26 00:17:19 · 520 阅读 · 0 评论 -
uva 1630 Folding
Bill is trying to compactly represent sequences of capital alphabetic characters from `A' to `Z' by folding repeating subsequences inside them. For example, one way to represent a sequence `AAAAAAAAAA原创 2016-12-25 12:29:57 · 673 阅读 · 0 评论 -
uva 1543 Telescope
终于找到一点自信,没有看别人题解ac这道lrj紫书上的题目,一旦想到用海伦公式其他的就很简单了,我发现用递归写dp,真的比循环写dp要容易些。主要思路就是dfs函数中的循环语句。其实这道题目也可以看做搜索类的题目,状态转移方程式是dp[i][j][n]表示在i,j点中取n个节点的最大面积(i,j必取),dp[i][j][n] = max(dp[k][j][n-1]+area[i][k][j]) 其原创 2017-01-08 23:25:20 · 441 阅读 · 0 评论