ACM解题报告
文章平均质量分 68
PythonFX
这个作者很懒,什么都没留下…
展开
-
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 · 1265 阅读 · 0 评论 -
HDOJ 1010:Tempter of the Bone 迷宫问题 解题报告
Tempter of the BoneTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 30012 Accepted Submission(s): 8167Problem DescriptionThe d原创 2012-02-25 10:20:14 · 2140 阅读 · 0 评论 -
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 · 577 阅读 · 0 评论 -
HDOJ_2084:数塔 解题报告
要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少?初始条件其实就是最底层的数值,递推关系是某一节点数值=自身数值+左右子节点数值的较大值。看到有的人的代码是用二维数组,角标1为行号角标2为该行第几个元素,这样确实代码更好写,不过浪费了一倍的内存,我是用一位数组写的,每行第一个元素的序号需要求一下,略显麻烦。//HDOJ_2084:数塔,要求从顶层走到底层原创 2012-02-25 10:08:07 · 1298 阅读 · 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 · 1451 阅读 · 0 评论 -
HDOJ 1239:Calling Extraterrestrial Intelligence Again 解题报告
Calling Extraterrestrial Intelligence AgainTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2905 Accepted Submission(s): 1561Probl原创 2012-02-25 10:19:35 · 2282 阅读 · 0 评论 -
HDOJ 1238:Substrings 寻找最长子序列 解题报告
SubstringsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 4177 Accepted Submission(s): 1871Problem DescriptionYou are given a原创 2012-02-25 10:19:01 · 2829 阅读 · 0 评论 -
HDOJ 1050:Moving Tables 解题报告
http://acm.hdu.edu.cn/showproblem.php?pid=1050两个含有相同占用走廊段的移动无法同时进行 故移动次数取决于被占用次数最多的那段走廊 并与之相等#include #include //#include using namespace std;int f[201];int main(){ //ifstream cin("1050_原创 2012-02-25 10:15:50 · 1480 阅读 · 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 · 2107 阅读 · 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 · 1161 阅读 · 0 评论 -
HDOJ_1159:Common Subsequence 解题报告
abfcab 0000000b0011111a0111112f0112222c0112333a0122344b012原创 2012-02-25 10:10:06 · 995 阅读 · 0 评论 -
HDOJ 2037:今年暑假不AC 解题报告
实际是寻找一组成对数列中首尾不相覆盖的升序子序列的最大长度 先按结束时间升序排序 则p[0]一定可以入选最长子序列 因为p[0]的结束时间最短[可并列] 若存在一个最长子序列不含p[0] 则一定可以让p[0]代替该子序列的首元素 于是解题思路出来了:选中p[0]后 剩余序列的首元素如果其开始时间不早于p[0]的结束时间 则必定入选 否则不入选 看下个元素 以此类推// HDOJ_2037.原创 2012-02-25 10:15:17 · 941 阅读 · 0 评论