动态规划
黑猫爱白猫
这个作者很懒,什么都没留下…
展开
-
hdu 2602 (01背包问题)
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2602 题意:01背包问题,属于水题,直接模板。 ac代码#include #include #include using namespace std; const int M = 1000 + 1; int max(int x, int y) { if(x > y)return x; el原创 2017-03-27 19:59:51 · 482 阅读 · 0 评论 -
hdu 2084(数字三角问题)
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2084 题目大意,有一组数字,以正三角的形式排列。现从该数字三角的顶端走到底层,需要所走路径的数字和最大,并输出该值。 ac代码 #include #include using namespace std; const int M = 10000; int shuta[M][M原创 2017-03-26 19:23:09 · 327 阅读 · 0 评论 -
poj 2229
题目链接:http://poj.org/problem?id=2229 题目大意:将一个数分解成若干个数的和, 这些数是2的幂,输出有几种分解方法 分析:利用公式递推,先打表 公式:n是奇数:n为奇数,则n - 1为偶数, 在n - 1的序列前都加个 1 就是n的序列 所以原创 2017-05-07 14:32:36 · 245 阅读 · 0 评论 -
poj 2385
题目链接:http://poj.org/problem?id=2385 题目大意:有两个树,编号为1, 2,每秒钟其中一颗树上会掉下一颗苹果。一头牛,开始时站在1号树下,如果一棵树上掉下苹果,只有移动到该树下(或者原本就在该树下)才能接到这个苹果。这头牛只愿意移动W次,问T秒内该牛最多能接到多少课苹果 //感觉讲得好啰嗦。。。 分析:刚开始完全不知道该从何下手,想要用原创 2017-05-08 16:32:18 · 334 阅读 · 0 评论 -
poj 3280 Cheapest Palindrome
题目链接:http://poj.org/problem?id=3280 题目大意:题目背景就不叙述了。有一个字符串,可以在字符串的任意位置添加或者删除字符,删除或者添加都需要花费,每个字符的花费均不同,为了使原字符串变为回文,求出最小花费。 回文:如abcba,abccba都是回文 分析:1、添加和删除的操作本质是一样的,所以只要保存两者的最小值就可以了。原创 2017-07-21 09:40:56 · 157 阅读 · 0 评论 -
poj 1742 Coins
题目链接:http://poj.org/problem?id=1742 题目大意:有一系列硬币,每种硬币都有自己的数量,要求这些硬币能在1 - m之间组成多少种面值。 分析:多重背包的变形,在多重背包的同时加一个标记数组,只要该面值出现过,记录下来就可以,下次再出现直接continue; ac代码: #include #include #define M 100005 #define N原创 2017-07-21 22:46:36 · 210 阅读 · 0 评论 -
poj 3616 Milking Time
题目链接:http://poj.org/problem?id=3616 题目大意:。。。 分析:(最大递增子序列) ac代码 #include #include #define Max 1005 using namespace std; int dp[Max]; struct milk { int start; int end; int effic; }a[Max]; boo原创 2017-07-19 22:52:14 · 184 阅读 · 0 评论 -
LightOJ 1017 Brush (III)
题意:有一把刷子宽度为w,只能沿x轴方向刷,现给出n个点,问这把刷子刷k次,最多能刷到几个点 题解:很简单的一道dp,因为刷子只能沿x轴刷,所以只要看纵坐标就好了,这样输入的时候就不用结构体,直接单把纵坐标存在一个数组里就可以了。先把纵坐标排序,然后用dis数组记录下刷子的一段从每个点开始最多能刷到多少个点,接下来问题就简单了 状态转移方程:dp[i][j] = max(dp[i - 1][j原创 2018-02-01 00:50:00 · 204 阅读 · 0 评论