摘要: 题意:奶牛Bessie在0~N时间段产奶。农夫约翰有M个时间段可以挤奶,时间段f,t内Bessie能挤到的牛奶量e。奶牛产奶后需要休息R小时才能继续下一次产奶,求Bessie最大的挤奶量。思路:一定是对时间段dp,然后就是两个for的事了。只要前面能满足条件的状态就可以转移过来,然后取最大,不过要先 阅读全文
posted @ 2017-08-07 13:16 demianzhang 阅读(384) 评论(0) 推荐(0) 编辑
摘要: 题意:2棵苹果树在T分钟内每分钟随机由某一棵苹果树掉下一个苹果,奶牛站在树#1下等着吃苹果,它最多愿意移动W次,问它最多能吃到几个苹果。思路:不妨按时间来思考,一给定时刻i,转移次数已知为j, 则它只能由两个状态转移而来。即上一时刻同一棵树或上一时刻不同的树 dp[i][j] = max(dp[i- 阅读全文
posted @ 2017-08-07 13:12 demianzhang 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 题意:把n拆分为2的幂相加的形式,问有多少种拆分方法。 分析:dp,任何dp一定要注意各个状态来源不能有重复情况。根据奇偶分两种情况,如果n是奇数则与n-1的情况相同。如果n是偶数则还可以分为两种情况,有1和没有1。这样分可以保证两种情况没有重复,对于有1的情况可以直接拆出两个1(拆一个也行,但变成 阅读全文
posted @ 2017-08-07 13:09 demianzhang 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 题意:对一个字符串进行插入删除等操作使其变成一个回文串,但是对于每个字符的操作消耗是不同的。求最小消耗。 思路: 我们定义dp [ i ] [ j ] 为区间 i 到 j 变成回文的最小代价。那么对于dp【i】【j】有三种情况首先:对于一个串如果s【i】==s【j】,那么dp【i】【j】=dp【i+ 阅读全文
posted @ 2017-08-07 09:34 demianzhang 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 题意:有n个牛在FJ的花园乱吃。所以FJ要赶他们回牛棚。每个牛在被赶走之前每秒吃Di个花朵。赶它回去FJ来回要花的总时间是Ti×2。在被赶走的过程中,被赶走的牛就不能乱吃 思路: 先赶走破坏力大的牛假设序列都由二元组组成,二元组是由T和D组成,那么对一个序列有相邻的两头牛是这样的.......... 阅读全文
posted @ 2017-08-07 00:55 demianzhang 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 题意:科学家发现一种奇怪的东西,他们有重量weight,如果他们碰在一起,总重变成2*sqrt(m1*m2)。要求出最终的重量的最小值。 思路:每次选取质量m最大的两个stripy进行碰撞结合,能够得到最小的质量。所有只要维护一个优先队列就可以了 #include <iostream> #inclu 阅读全文
posted @ 2017-08-07 00:42 demianzhang 阅读(311) 评论(0) 推荐(0) 编辑