
ACM记录
小毛头31
这个作者很懒,什么都没留下…
展开
-
POJ3280 Cheapest Palindrome(区间DP) ——菜鸟的ACM之旅
POJ3280 Cheapest Palindrome 题目大意 给定一个字符串S,字符串S的长度为M(M≤2000),字符串S所含有的字符的种类的数量为N(N≤26),然后给定这N种字符Add与Delete的代价,求将S变为回文串的最小代价和。(字符全部是小写字母) 思路 区间DP,dp[i][j]代表i,j区间内字符串成为回文的最小花费,那么我们需要从小范围到大范围扩展,我们到dp[i-1][j+1]的时候,有两种可能,第一种s[i-1] != s[j+1] ,我们需要修改两边的字符,并将小于i j+1原创 2020-08-17 19:52:23 · 154 阅读 · 0 评论 -
POJ3616 Milking Time (简单DP)——菜鸟的ACM之旅
POJ3616 Milking Time 题目大意 奶牛Bessie非常的勤奋,她想在N时间内产出最多的牛奶。我们的老朋友Farmer John 有M个挤奶的时间段,有可能有重叠。每个时间段由开始时间和结束时间组成,每个时间段Bessie会产出e的奶,Farmer John可以在这些时间段里为Bessie挤奶,需要注意的是,必须要挤够一个完整的时间段。但是我们的Bessie也会劳累,每挤完一次奶,她就要休息R小时,求在N小时内挤出奶的最大量 思路 DP,d[i] 表示在i这个时刻,挤出奶的最大量。时间段表示原创 2020-08-17 16:48:58 · 312 阅读 · 0 评论 -
POJ2385 Apple Catching(简单DP)——菜鸟的ACM之旅
POJ2385 Apple Catching 题目大意 有两棵APP树,编号为1,2.每一秒,这两棵APP树中的其中一棵会掉一个APP.每一秒,你可以选择在当前APP树下接APP,或者迅速移动到另外一棵APP树下接APP(移动时间可以忽略不计),但由于却乏锻炼,你最多移动W次.问在T秒内,你最多能收集多少个APP.假设你开始站在1号APP树下. 思路 DP,设置d[t][w] 表示在t时间下,移动了w次时最大的苹果数。状态专业 ...原创 2020-08-17 15:17:59 · 200 阅读 · 0 评论 -
POJ3262 Protecting the Flowers ——菜鸟的ACM之旅
POJ3262 Protecting the Flowers 题目大意 我们的老朋友约翰发现他的牛在吃他的花,每头牛每分钟吃Di朵花,他要把他们送到牛棚里,每次只能送一只,每头牛距离牛棚路程为Ti分钟,约翰每次送牛来回得花 2*Ti 分钟,求牛送完后,牛吃的花总数最少是多少 思路 第一时间想到的就是,每次送回 (Sum(剩下牛每分钟吃花的总数) - Di) * Ti 最少的牛,但是这样有个问题,Sum要换一头牛就要更新,那么每头牛也得现找。我们最理想的状况就是,一个sort直接排序,不用再动了,sort原创 2020-08-16 16:23:21 · 321 阅读 · 0 评论 -
POJ 3040 Allowance——菜鸟的ACM之旅
POJ 3040 Allowance 题目大意 作为创纪录的牛奶生产的奖励,农场主约翰决定开始给Bessie奶牛一个小的每周津贴。FJ有一套硬币N种(1≤N≤20)不同的面额,每枚硬币是所有比他小的硬币面值的倍数,例如1美分硬币、5美分硬币、10美分硬币和50美分硬币。使用这些硬币,FJ每周至少给Bessie C(1 <= C <=100000000)美分。请你计算他最多能给Bessie几周 思路 贪心,先把值大于等于c的金币提取出来,直接用。然后再用一些尽可能大的金币逼近c,但不能大于c,然后原创 2020-08-16 16:01:33 · 150 阅读 · 0 评论 -
Bribe the Prisoners 菜鸟的记录
Bribe the Prisoners 题目大意 有一个监狱里有一排牢房1-P,其中住着一些囚犯。现在要释放一些囚犯Q, 当释放一个囚犯的时候,要给两边所有的囚犯每人一枚金币, 直到遇到空牢房或者尽头。现在要求最小的金币数量。 思路 一旦一个囚犯被释放,那囚犯两边的牢房就相互独立了,谁也不会影响谁。用a[i]来存每位待释放囚犯的位置, 用d[i][j]表示释放从i到 j 这个范围内(不包括i 和 j)囚犯所需要的最少金币数量。 那么 总所需金币的数量 = 最初要释放的囚犯 X 所需要的金币数量 a[0] -原创 2020-08-08 22:06:00 · 200 阅读 · 0 评论