2012年8月15日

HDU 1503 Advanced Fruits

摘要: hdu : http://acm.hdu.edu.cn/showproblem.php?pid=1503题意:两种水果杂交出一种新水果,现在给新水果取名,要求这个名字中包含了以前两种水果名字的字母,并且这个名字要尽量短。也就是说以前的一种水果名字x是新水果名字s的子序列,另一种水果名字y也是新水果名字s的子序列。要你求s。做法:用求最长公共子序列的方法,求出x和y的最长公共子序列,然后再用递归思想,逐一输出,得到的就是最后答案。代码:View Code 1 #include<stdio.h> 2 #include<string.h> 3 int c[1010][1010 阅读全文

posted @ 2012-08-15 17:07 acoderworld 阅读(439) 评论(0) 推荐(0)

【转】动态规划解最长公共子序列问题--讲解

摘要: 动态规划法经常会遇到复杂问题不能简单地分解成几个子问题,而会分解出一系列的子问题。简单地采用把大问题分解成子问题,并综合子问题的解导出大问题的解的方法,问题求解耗时会按问题规模呈幂级数增加。为了节约重复求相同子问题的时间,引入一个数组,不管它们是否对最终解有用,把所有子问题的解存于该数组中,这就是动态规划法所采用的基本方法。【问题】求两字符序列的最长公共字符子序列问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列。令给定的字符序列X=“x0,x1,…,xm-1”,序列Y=“y0,y1,…,yk-1”是X的子序列,存在X的一个严 阅读全文

posted @ 2012-08-15 15:30 acoderworld 阅读(200) 评论(0) 推荐(0)

导航