DP
「已注销」
这个作者很懒,什么都没留下…
展开
-
Lighting System Design UVA - 11400
如果要换就都换,否则都不换列一下式子很快就可以发现,如果要换一定是不是因为灯泡价格更低,就是因为当前电源太贵,所以要换就换紫书说的方法如下先对灯泡属性按照电压由小到大的顺序排序定义d[k]为买前k种灯泡的最优解状态转移方程为d[k]=d[j]+剩下的全买第k种灯泡 1<= j<k这里隐含了一个结论就是要换能换成一种灯泡的一定是连续的,可以自己通过列式子发现,...原创 2018-09-11 13:39:39 · 252 阅读 · 0 评论 -
Storage Keepers UVA - 10163
看到很多人都是选择用两次DP去做的第一个dp[i, j] : 前i个人照看前j个物品的最大安全值。第二个dp[i, j] : 在得到最大安全值的前提下前i个人照看前j个物品的最少花费这种做法是我没有想到的,这两种都是是用01背包的解法第一种对应随便装,不要求恰好装满,第二种对应恰好装满具体写法见代码另外还看到了另外一种做法,时间复杂度相对高点,但更好写,利用二分+DP,具体...原创 2018-10-06 21:18:50 · 184 阅读 · 0 评论 -
Locker UVA - 1631
一道相对简单的DP问题,之所以简单是因为状态转移比较容易想最初是想用一维就解决这个问题的,但是代码bug太多放弃了所以去看题解发现别人用的是四维,而且代码相当简洁,对比我用一维的思路,发现其实思想差不多,只不过增加维度后代码难度减少了很多,用一维的话需要你自己去计算怎么带动其他两位可以达到最优,这个稍微复杂点代码参考别人#include<iostream>#incl...原创 2018-10-06 19:45:34 · 192 阅读 · 0 评论 -
Stamps and Envelope Size UVA - 242
完全背包问题附一篇完全背包问题很好的讲解https://www.cnblogs.com/Kalix/p/7622102.html01背包也值得一看http://www.cnblogs.com/Kalix/p/7617856.html代码也好理解#include<iostream>#include<cmath>#include<cstdio>...原创 2018-10-06 19:26:41 · 205 阅读 · 0 评论 -
51nod 1791 合法括号子段 括号匹配算法+dp计数
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1791给定一串括号串,对于其中每个左括号‘(’最多只能找到一个与之相匹配的右括号‘)’。显然,在括号串固定的情况下,括号的匹配是固定不变的。根据题意,空串为合法括号,“()”为合法括号串,若A为合法括号串则”(A)”为合法括号串。那么我们可以先用括号匹配算法(利...原创 2018-09-20 15:30:01 · 310 阅读 · 0 评论 -
Twenty Questions UVA - 1252
代码参考刘汝佳 #include<iostream>#include<cmath>#include<cstdio>#include<cstdlib>#include<cstring>#include<iomanip>#include<assert.h>#include<vect原创 2018-09-20 14:22:13 · 128 阅读 · 0 评论 -
Headmaster's Headache UVA - 10817
#include<iostream>#include<cmath>#include<cstdio>#include<cstdlib>#include<cstring>#include<iomanip>#include<assert.h>#include<vector>#原创 2018-09-20 00:20:02 · 131 阅读 · 0 评论 -
最优配对问题 状压DP
感谢老哥的代码,总感觉紫书上的代码不太好,总感觉写法与状态定义有所出入,而且有一处明显错误,不知道是不是印刷错误,不过看了老哥的代码感觉他的代码超越刘汝佳,非常感谢https://blog.csdn.net/dolfamingo/article/details/72593993 ...转载 2018-09-19 23:21:03 · 310 阅读 · 0 评论 -
Fund Management UVA - 1412
很有难度的一道题将n元组映射成一个数字,既方便了状态的转移,也加快了时间,否则利用九进制去进行操作,很麻烦的将所有状态都记录下来之后,股票的买个卖就可以抽象成一幅图了,也方便了状态转移具体细节看代码吧#include<iostream>#include<cmath>#include<cstdio>#include<cstdlib&g...原创 2018-09-24 21:41:22 · 224 阅读 · 0 评论 -
Perfect Service UVA - 1218 树上的动态规划
#include<iostream>#include<cmath>#include<cstdio>#include<cstdlib>#include<cstring>#include<iomanip>#include<assert.h>#include<vector>#原创 2018-09-19 15:19:26 · 132 阅读 · 0 评论 -
Party at Hali-Bula UVA - 1220 树上动态规划
之前一直对树上动态规划不太感冒这道题总算是对树上的动态规划的敲门砖吧对这类题的理解又加深了许多,收获很大 #include<iostream>#include<cmath>#include<cstdio>#include<cstdlib>#include<cstring>#include<iomanip&...原创 2018-09-18 00:13:51 · 122 阅读 · 0 评论 -
Color Length UVA - 1625
转载自https://www.cnblogs.com/zyb993963526/p/6364069.html题意:输入两个长度分别为n和m的颜色序列,要求按顺序合并成同一个序列,即每次可以把一个序列开头的颜色放到新序列的尾部。对于每个颜色c来说,其跨度L(c)等于最大位置和最小位置之差。思路:我们用d(i,j)表示两个序列已经分别移走了i和j个元素时的最小代价。当然为了在状态转移时...转载 2018-09-15 20:42:08 · 128 阅读 · 0 评论 -
Brackets sequence UVA - 1626
参考刘汝佳代码写的加了一点点注释#include<iostream>#include<cmath>#include<cstdio>#include<cstdlib>#include<cstring>#include<iomanip>#include<assert.h>#include&原创 2018-09-11 22:02:01 · 122 阅读 · 0 评论 -
The Tower of Babylon UVA - 437 模板题
可作为DAG中最长路问题模板#include<iostream>#include<cmath>#include<cstdio>#include<cstdlib>#include<cstring>#include<iomanip>#include<assert.h>#include<原创 2018-09-11 16:04:48 · 104 阅读 · 0 评论 -
Partitioning by Palindromes UVA - 11584
动态规划判断回文串采用左右逼近的方法,逻辑简单也好写另外这道题需要多次判断一个字符串是不是回文串虽然每次左右边界不一样,但是在判断到一定程度时还是会出现许多重复例如 判断1到8 ,先判断1位置字符是否与8位置字符相同,不同则返回0反之递归判断2到7,而2到7我们已经判断过了,如果我们保存了这个结果,那么久可以直接用了这道题数据规模为1000,所以不那样保存也可以我的写法...原创 2018-09-11 16:01:44 · 98 阅读 · 0 评论 -
M - Integer Transmission UVA - 1228 详细题解
问题简述: 给你一个n比特的非负整数k,比如3比特的正整数2就表示010,然后我们传输这个数,每个比特从左到右传输,也就是一个比特一个比特的传,其中每个比特都可能会有0~d的延迟,若同时有多个比特同时被传送过来,实际接受到的顺序任意,求实际收到的整数有多少种,已及他们的最大值最小值 很有难度的一道题,不过这道题对我的启发意义非常大 具体做法参考自刘汝佳,我这里主要是将他的思路说的更...原创 2018-09-29 01:49:08 · 274 阅读 · 0 评论