线性DP
文章平均质量分 70
Good_night_Sion_
Good Night, Sion.
展开
-
CodeForces 132C Logo Turtle 四维DP 递推
好吧,这道题目居然是动态规划。。涨姿势了。。。原来也可以这样设置状态。。 需要开一个bool数组来表示这个状态是不是可以到达,最后在所有状态里面遍历一遍,取最大的。 arr[i][j][k][l]表示执行到i条指令离坐标j变换了k条指令方向为l的状态可不可达(l表示方向,0表示和原点相同,1表示相反)原创 2016-10-10 19:52:54 · 600 阅读 · 7 评论 -
UVA 11400 Lighting System Design DP
好吧,理解这道题目的意思确实费了我一番功夫,原来每个category的电源和灯泡之间没有一一对应关系,总之各种方面的无法理解题意。。。。好吧,直接说过程。 定义状态dp[i]表示电源电压从低到高的前i个灯泡的最小花费 那么从前i个灯泡转移到前i+1个灯泡的过程当中,我们首先注意到一个减少花费的办法是可以用第i+1种灯泡原创 2016-10-23 19:46:42 · 426 阅读 · 0 评论 -
UVA 1025 紫书练习题 动态规划
好吧,做例题总是这样,莫名其妙的WA,然后莫名其妙的AC。。。 关键的部分紫书上已经说得很清楚了,剩下的就是确定has_train这个数组,我觉得确定这个数组也不是难事吧。。把数据范围看清楚,然后看看有没有什么写错了的小地方,注意一下就就好。 还有一件事情就是,我这里的维度和紫书上是反的,我是依靠自己的感觉来写的,用第一维原创 2016-10-13 21:27:09 · 791 阅读 · 6 评论 -
POJ 1742 Coins 混合三种背包问题
好吧,这种关于钱币组合类型的题目原来是可以看成背包来做的。。。这一道题目就是可以看成一个混合背包来做。。假若数量乘以价值比m要大的话,那就可以看成是一个完全背包来做。否则的话就是一个多重背包喽。思想倒是很好理解。。而且这里只需要我们判断可行性,只要最后扫一遍1~m看哪些状态是true就可以了。我觉得我的代码没什么好讲的。。。 #include#includ原创 2016-10-06 14:50:57 · 1186 阅读 · 0 评论 -
UVA 147 Dollars 完全背包
题目不难,一个完全背包而已。只是需要注意,我用double直接读入莫名WA,看了别人的题解才发现要+上一个0.005,可是我依然无法理解为什么是这样。#include#include#includeusing namespace std;;const int maxm=30000;long long arr[maxm+10]{1},value[11]={5,10,20,50,100原创 2016-10-06 14:56:46 · 332 阅读 · 0 评论 -
UVA 242 Stamps and Envelope Size 刷表法 细心一点,不是很难的DP
一道不是很难的DP做了我好久。。。在洗澡的时候突然想出来是初始化的问题。。诶呀!下回还是要注意一点。 本来用的是memset(dis+1,0x3f, sizeof(int)*ans[i]),但是这样初始化是有问题的,问题就在于在刷表的时候后面有一些项可能已经不是0x3f3f3f3f了,导致下一组答案可能错误。。 这道题不算10原创 2016-10-30 22:53:22 · 509 阅读 · 0 评论 -
UVA 12563 Jin Ge Jin Qu hao 在有约束条件下的DP,结构体作为基本单位
好吧,这道题目本身不难,但是这道题目可以和另外一道题目(UVA 10163)联系起来,这就有点意思了。这道题目是带有约束条件的DP,要求在唱的歌曲最多的情况下唱的时间最长,这道题目可以定义一个含有两个元素的结构体,一个元素表示当前的歌曲数,一个表示当前唱了多久。以唱的歌曲数量为第一优先级,唱的时间为第二优先级来进行递推。最后一秒钟用来唱性价比最高的曲子,也就是Jin Ge Jin Qu原创 2016-11-16 16:17:13 · 659 阅读 · 0 评论 -
100道动态规划——21 HDU 1559 最大子矩阵和 树状数组 最大连续子区间和
好吧,拿一个简单的DP来练练手(捂脸)看到的第一眼就想到最大连续子区间和的问题,然后想办法往上面靠我用的不是二维树状数组,而是n个一维的树状数组,通过枚举子矩阵的行数,转化为最大连续子区间和估计是个n^3lgn的复杂度,算上树状数组的查询的话,因为数据量小,也就过去了。#include #include #include using namespace std;int原创 2017-01-08 11:40:01 · 1212 阅读 · 0 评论 -
CSUOJ 1945 最简单的题目 背包问题
Description小明有一台笔记本电脑,一台台式机电脑,两台电脑的性能相同,现在小明手里有N个等待运行的程序,每个程序运行所需的时间分别为n1,n2,n3,n4……,一台电脑同一时刻只能运行一个程序,一个程序只需要运行一次。两台电脑同时开始运行,请问小明该如何分配程序在这两台电脑上运行,使得最后结束运行的电脑的运行时间最短。Input输入不超过30组数据,每组数原创 2017-05-28 20:13:50 · 858 阅读 · 0 评论