动态规划
文章平均质量分 67
wumuzi
这个作者很懒,什么都没留下…
展开
-
动态规划——最长公共子序列(LCS)
-----Edit by ZhuSenlin HDU求最长公共子序列。给定两个序列和,希望找出X和Y的最大公共子序列。1) 确定LCS最优子结构。设为X和Y的任意一个LCS,则如果xm=yn,那么zk=xm=yn且Zk-1是Xm-1和Yn-1的一个LCS;如果xm!=yn,那么zk!=xm蕴含Z是Xm-1和Y的一个LCS;如果xm!=yn,那么zk!=yn蕴含Z是X和Yn-原创 2012-03-21 15:27:57 · 1640 阅读 · 1 评论 -
动态规划——数组中最长递减子序列
-----Edit by ZhuSenlin HDU求一个数组的最长递减子序列比如{9,4,3,2,5,4,3,2}的最长递减子序列为{9,5,4,3,2}分析:典型的动态规划题目,对每一个数计算由它开始的最大递减子序列的个数,并存放到一张映射表中。例如对数组a[n]有……然后利用求得的映射表及最大子序列个数获取原数组中的元素。对于{9,4,3,2,5,4,3,2}我们原创 2012-03-21 15:42:19 · 13970 阅读 · 5 评论 -
动态规划——通配符匹配算法
-----Edit by ZhuSenlin HDU设计通配符匹配算法,其中*号可以匹配任意多个字符,?号可以匹配任意一个字符。例如12345和12*、12*?以及12*4?等都匹配。函数原型为:bool match(const char* str, const char* strpattern); 分析:利用动态规划来解决。此题类似与LCS问题。假设字符串A[i]代表前i+1原创 2012-03-21 15:56:12 · 8513 阅读 · 5 评论