动态规划法求最长公共子序列问题

动态规划法求最长公共子序列问题

一、实验目的及要求:
实验目的:本实验主要清楚动态规划法的主要思想,如何利用动态规划算法解决实际问题,通过动态规划法求解最长公共子序列问题,利用测试数据对最长公共子序列问题进行求解,得出最终结果,清楚动态规划算法解决问题的主要思路。
实验要求:利用Dev C++编程环境,采用若干个测试数据进行求解,输出最长公共子序列的长度结果值。
二、实验原理(图):
动态规划法通常用于求解最优化问题,它适用于那些子问题相互重叠的情况,即子问题不独立,不同的子问题具有公共的子子问题(就是子问题的子问题)。这显然与分治法是不同的,分治法将问题划分为不重叠的子问题,然后分别求解这些子问题,最后将这些问题合并得到最终的解。对于具有公共子问题的情况,分治法会做很多不必要的工作,它会多次求解同一子子问题。动态规划法却不一样,对每个子子问题它只会求解一次,将其保存在一个表格中,避免了不必要的重复计算。如之前所说,动态规划法用于求解最优化问题,这就意味着可能这个问题,有很多解,但是呢,不一定都是最优解。利用动态规划法求出来的是这个问题的一个最优解,记住这里求解的只是最优解中的一个,因为最优解可能有多个。
三、实验设备(环境):
硬件windows 10 ,软件:DEV。

四、实验内容(算法、程序、步骤和方法):
#include
Using namespace std;
#include<string.h>
char a[101],

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值