思维较强较难的dp题
PoemK
这个作者很懒,什么都没留下…
展开
-
uva 10891 - Game of Sum 动态规划 状态选取
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1832这类题以前做过,看了书写的,感觉书上的做法还是非常好,状态的表示不是说对于A和B,而是对于先手来说。/**======================原创 2016-01-19 13:28:06 · 506 阅读 · 0 评论 -
uva 1380 - A Scheduling Problem 一个调度问题 好难的动态规划
想不出来啊!!!,紫书上写的很清楚。1.利用题目给出的图论定理,先不考虑无向边,假如图中有向链的最大长度为K,那么答案为K+1或K+2(注意是K链的长度,答案是链包含点的个数)。2.考虑答案是否能为K+1,否则为K+2,即考虑给无向边定向,定向之后能否使最长链不超过K?进行动态规划来考虑:对于每一个结点in[x] 表示: 在定向后最长链不超过K的前提下,原创 2016-02-09 22:07:41 · 1267 阅读 · 0 评论 -
uva 1627 Team them up! 团队分组
题目:点我感觉自己好像做麻烦了,这个题目的思考方式是,对于不能在一组的连线,这样所有点就被分为一些连通块。假如可以分组,每一个连通块就是一个泛化物品,价值可正可负。这是因为,能在一组的点,可以在一组,也可以不在一组,不能在一组的点一定不能在一组,这样保证了不能的情况,简化了问题。/**=============================原创 2016-02-04 20:32:15 · 781 阅读 · 0 评论 -
uva 1336 - Fixing the Great Wall 修缮长城
比较难想的动态规划uva 1336 - Fixing the Great Wall 修缮长城原创 2016-02-01 23:00:50 · 828 阅读 · 0 评论 -
uva 10559 方块消除
dp[le][ri][k]表示区间[le,ri]并且右边还有k个和 ri位置相同颜色的方块 的最优解。转移时间O(n),状态O(n^3),时间复杂度O(n^4)(一般来说n为200,这样可能会超时),用记忆化搜索很多状态不会达到,可过。/**========================================== * This is a solut原创 2016-02-20 16:25:26 · 686 阅读 · 0 评论 -
UVA - 1228 Integer Transmission 整数传输 递推
题目约制1:同是1或者同是0的数字其相对位置不变。 求最大最小可用贪心求解。 简化题目:若延迟为d,从左往右数第i个数字到达的时间范围可以记为[i,i+d],题目说是[i+1,i+d+1],不影响结果。约制2(书上说的,实际解题我的代码没有用到,但这是对的):假若有n位数字,到达的时间是[1,n+d],我们可以修改为[1,n]不原创 2016-02-18 15:26:49 · 908 阅读 · 1 评论 -
UVA - 1439 Exclusive Access 2 独占访问2
问题转化:给出1个最多结点数为15的图,然后给出一些无向边,现在需要给这些边/**========================================== * This is a solution for ACM/ICPC problem * * @source:uva 1439 Exclusive Access 2 * @type: dp *原创 2016-02-17 18:50:42 · 944 阅读 · 0 评论 -
UVA - 12170 Easy Climb 轻松爬山 单调队列优化DP
题意:输入正整数d和n个正整数h1,h2,...,hn。可以修改除了h1和hn的其他数,要求修改后相邻两个数之差的绝对值不超过d,且修改费用最小。设h1修改后的值为hi',则修改费用为|h1-h1'|+|h2-h2'|+...+|hn-hn'|;无解输出impossible,有解输出最小费用。(2 ≤ n ≤ 100)(0 ≤ d ≤ 10^9)(0 ≤ hi ≤ 109)原创 2016-02-16 22:10:39 · 811 阅读 · 0 评论 -
UVA - 12099 The Bookcase 书架
背包思想,书有宽度,书也有高度,这里宽度是典型的体积。因为分三层,为了方便考虑,给与约制:第一层的高度>第二层>第三层。(将书按从大到小的顺序排列)接下来进行分阶段的动态规划,每本书有三种选择:放在第一层,放在第二层,放在第三层。dp[2][v2][v3],滚动数组,v2表示第二层的数宽度和,v3表示第三层的书宽度和。因为所有书的宽度和一定,我们可以方便的计算出第一层的宽度和。原创 2016-02-15 21:38:17 · 710 阅读 · 0 评论 -
uva 1204 Fun Game 有趣的游戏 字符串集合的动态规划
不得不说,此题很难,不得不说,我很渣,看了题解,自己写代码,不但写了一大堆,后来WRONG ANSWER还找不到错了。只好看紫书的代码。。。发现好多实用的函数的写法reverse(tmps[i].rev.begin(),tmps[i].rev.end());if(tmps[j].s.find(tmps[i].s)!=string::npos || tmps原创 2016-02-15 14:14:37 · 1195 阅读 · 0 评论 -
uvaLive 4490 Help Bubu 帮助布布 等价转化+DP
等价转换:从有n本书的书堆里面抽取k本书,再插入书堆里面,计算书的杂乱度等价于向空的书架上按给出的顺序放上n本书,再从中抽取k本书,然后插入书堆里面,计算书的杂乱度等价于向空的书架上按给出的顺序放上n-k本书,然后再放上k本书,想放哪放哪,计算书的杂乱度。显然第一阶段放n-k本书,就是一个简单的背包+集合动态规划。对于每一本书,可以选也可以不选。原创 2016-03-09 11:06:19 · 680 阅读 · 0 评论