ACM-dp
文章平均质量分 73
CHeck_Check_check
这个作者很懒,什么都没留下…
展开
-
HDU-2955 Robberies(小数01背包)
题目链接:点击打开链接题意:一个人要去抢银行,给出n个银行各自的总存款和此人在这个银行被抓的概率,求出被抓概率小于p的情况下最多能抢多少钱。分析:我开始把概率p乘以10^5转换为整数当作背包容量来求解wa了,可见数据的精度比1e-5还要小,用这种思路来解决问题是行不通的,需要转换思路。 此题需要将银行总的钱数sum当作背包容量,求出在不同的钱数i下此人逃跑的概率dp[原创 2016-07-22 15:55:15 · 938 阅读 · 0 评论 -
codeforces-407B Long Path(dp)
题目链接:点击打开链接题意:一个人要从房间1走到房间n+1,每走到一个房间要在此进行一次标记,每走到一个房间有两种行走的方式,若标记次数为奇数则采取方式1:走到房间p[i],1分析:设dp[i]为第一次走到房间i时行走的步数,此时房间1到房间i-1的标记都是偶数次,因为第一次行走到房间i后房间标记为1(奇数),所以要往回走走走到房间p[i],再从房间p[i]走x步再次到达房间i时才能走到房原创 2016-07-23 21:12:08 · 369 阅读 · 0 评论 -
UVA-562 Dividing coins(01背包)
题目链接:点击打开链接题意:将m个含有不同价值的硬币分成两堆,使两堆硬币总价值之差最小分析:设所有硬币的总价值为sum,将其中一堆硬币的问题看成01背包问题(一个总容量为sum/2的背包,将所有硬币任意往里放,使包内所有硬币的总价值最大)。状态数组dp[j]=0 or 1表示这些硬币能否组成总价值为j的状态,从sum向下枚举,更新状态数组的值。接着i从sum/2向下枚举到0,找到最大的i能原创 2016-07-20 20:38:17 · 589 阅读 · 0 评论