![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DP
文章平均质量分 63
PythonFX
这个作者很懒,什么都没留下…
展开
-
HDOJ 1087:Super Jumping! Jumping! Jumping!解题报告
http://acm.hdu.edu.cn/showproblem.php?pid=1087游戏规则掩盖下的找一个给定数列的最大升序子列的和的问题设m[i]为包含a[i]的最大升序子列的和的大小 m[i]初始化为a[i]算法为对每个a[i] 扫描它前面的元素 找出小于a[i]的最大的元素a[j] 则令m[i]+=m[j]#include using namespace s原创 2012-02-25 10:12:19 · 574 阅读 · 0 评论 -
HDOJ 1058:Humble Numbers 寻找丑数问题 解题报告
符合要求的丑数只含有2、3、5、7的质因子 求前5842个丑数解题思想为:下一个最小的丑数一定在它前面的每个元素分别与2、3、5、7的乘积的结果中产生 而实际上只需跟踪4个数列即f[a]*2, f[b]*3, f[c]*5, f[d]*7 且为每个数列中满足条件的最小值 若f[a]*2被选中 则下轮应由f[a+1]*2代替为候选 不过由于不能保证四个序列没有相同的数值 如f[a]=3 f[b]原创 2012-02-25 10:13:44 · 2105 阅读 · 0 评论 -
HDOJ_1160:FatMouse's Speed 解题报告
先对输入的数据按重量作第一关键字、速度作第二关键字进行排序,注意实际排序函数中是先处理第二关键字。本题从前向后递推就好,不必反序。ppt里面有个描述个人觉得有一定误导性,“设f[i]为Mice[i]至Mice[n]最长的序列长度。” 我看来,f[i]是从Mice[1]开始、以Mice[i]为结尾时,最长的满足单调条件的序列长度。if( m[j].w!=m[i].w && m[j].s>m[i]原创 2012-02-25 10:09:10 · 1264 阅读 · 0 评论 -
HDOJ_1466:n条直线交点数 解题报告
关于动态规划,除了ppt里讲到的把子问题的结果保存起来甭管后面是否用到这个显著特点外,根据我目前粗浅的认识,觉得其解题步骤可以细化为以下几步:1. 根据题设找到或求出初始条件 具体如HDOJ_1466求直线交点数这题,设bool p[21][191](最多输入20条直线,对应最多190个交点),当p[i][j]==true时表示i条直线可以有j个交点。(最多输入20条直线,对应最多1原创 2012-02-25 10:04:51 · 1448 阅读 · 0 评论 -
HDOJ_2084:数塔 解题报告
要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少?初始条件其实就是最底层的数值,递推关系是某一节点数值=自身数值+左右子节点数值的较大值。看到有的人的代码是用二维数组,角标1为行号角标2为该行第几个元素,这样确实代码更好写,不过浪费了一倍的内存,我是用一位数组写的,每行第一个元素的序号需要求一下,略显麻烦。//HDOJ_2084:数塔,要求从顶层走到底层原创 2012-02-25 10:08:07 · 1297 阅读 · 0 评论 -
HDOJ_1159:Common Subsequence 解题报告
abfcab 0000000b0011111a0111112f0112222c0112333a0122344b012原创 2012-02-25 10:10:06 · 992 阅读 · 0 评论 -
HDOJ 1421:搬寝室 解题报告
n件物品 搬走k对 使得每对差值的平方的数值产生的长度为k的序列的和最小先对输入排序 再初始化dp[n][n/2]为INT_MAX(需头文件) 其中dp[i][j]=前i个物品选j对的最小疲劳度递推关系为dp[i][j] = min( dp[i-1][j], dp[i-2][j-1]+sq(a[i]-a[i-1]) );即若a[i]未被选中 则dp[i][j]=dp[i-1][j] 若原创 2012-02-25 10:13:00 · 1159 阅读 · 0 评论