摘要: 原题 题目链接 题目分析 有点难度的区间dp题,可以这样定义dp[i][j],把s[i-j]变为回文串的最小花费,显然s[i][i]=0,先说一下删除字母和添加字母的处理,因为当s[i-j]是回文串的时候,再往外扩展一个字母有两种方法,一种是删除这个字母,另一种是再添加一个字母,因此输入删除字母和添 阅读全文
posted @ 2019-08-24 18:25 VBL 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 原题 题目链接 题目分析 简单dp,很容易想到对于每个区间都只有两个选择,选和不选,因此可以定义一个dp[i],表示在前第i个区间能取得的最大奶量(区间已按起始时间排完序),注意在读入区间时可以直接在末尾时间直接加上R.更新由两个循坏来更新,第一个循环i从头区间遍历到尾区间,第二个循环j从头区间到i 阅读全文
posted @ 2019-08-24 17:07 VBL 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 原题 题目链接 题目分析 基础dp题,按照题意很容易给出dp定义,dp[i][j],表示在i时间内,用j次转移机会得到的最大苹果数.dp转移如下,如果j==0,则dp[i][j]=dp[i-1][j],否则 如果当前位置有苹果dp[i][j]=max(dp[i-1][j],dp[i-1][j-1]) 阅读全文
posted @ 2019-08-24 16:23 VBL 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 原题 题目链接 题目分析 计数dp,dp[i]定义为i有多少种分解方案,对一个数i,首先如果它是奇数,则它的方案总数与i-1的方案总数相同,因为只需要在i-1的每个分解方案+1即可.如果它是偶数,则i/2的每个分解方案的每个数*2即可得到i,这样得到的i的分解方案是不存在1的(因为*2所以至少为2) 阅读全文
posted @ 2019-08-24 16:12 VBL 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 原题 题目链接 题目分析 非常基础的dp题,先把原图存下来,然后在造一个与原图相匹配的dp,dp更新方案如下,如果j==1 则dp[i][j]只能从上一层的dp[i-1][j]更新过来,因此有dp[i][j]=dp[i-1][j],如果j==i,则dp[i][j]只能从上一层的dp[i-1][j-1 阅读全文
posted @ 2019-08-24 15:27 VBL 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 原题 题目链接 题目分析 有点难度的贪心题,首先考虑在相同时间t内怎么能使损失最少,可以这样来控制相同时间,设想一个子问题,如果只有两头牛,那最后结束时间肯定是一样的,这时候怎么使损失最少,就直接比较t1*d2和t2*d1就行了,如果是第一个小就选牛1,否则选牛二.扩展来讲,就是对所有牛排序,对于牛 阅读全文
posted @ 2019-08-24 15:19 VBL 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 原题 题目链接 题目分析 数学贪心题,每次取两个最大的合成,合成到最后即可使值最大. 代码 阅读全文
posted @ 2019-08-24 15:10 VBL 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 原题 题目链接 题目分析 有点难码的贪心题,策略是先能用大面额的就用大面额,然后凑出的价格不要高于c,如果凑到最后不能刚好凑完c,则能用小面额补就用小面额补,目的是让凑出的价格尽可能接近c,这样能少浪费钱,具体实现就是先从现有硬币里按照上述规则找一套凑法,然后不断用这个凑法凑直到硬币不足为止,接着又 阅读全文
posted @ 2019-08-24 15:01 VBL 阅读(201) 评论(0) 推荐(0) 编辑