搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
凡人多烦事01
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
vue 百度地图获取经纬度地址_vue 百度地图 标注 获取 经纬度
2
使用树莓派(香橙派)搭建文件共享服务器-samba服务器_香橙派做文件服务器
3
Open Dynamics Engine(ODE)物理引擎教程 (0)——总目录
4
Windows的权限(用户、组和访问控制)_windows用户组和权限
5
【A2B配置入门指南】_a2b_setup_alsa
6
Unity实现Image透明度渐变(Graphic)_unity image毛玻璃
7
一张图看懂3D机器视觉技术区别_3d视觉技术对比
8
python 基于Opencv图像对比_python opencv图片对比
9
Unity中Awake和Start的区别_unity awake和start的区别
10
3. 机器学习中为什么需要梯度下降_机器学习入门系列之梯度下降
当前位置:
article
> 正文
动态规划题目_掌握利 最优性原理求解动态规划问题的过程 实验内容 某企业甲、 、丙
作者:凡人多烦事01 | 2024-03-01 00:14:05
赞
踩
掌握利 最优性原理求解动态规划问题的过程 实验内容 某企业甲、 、丙
动态规划
实验目的:理解动态规划的基本思想,理解动态规划算法的两个基本要素最优子结构性质和子问题的重叠性质。熟练掌握典型的动态规划问题。掌握动态规划思想分析问题的一般方法,对较简单的问题能正确分析,设计出动态规划算法,并能快速编程实现。
实验内容:编程实现讲过的例题:最长公共子序列问题、矩阵连乘问题、凸多边形最优三角剖分问题、电路布线问题等。本实验中的问题,设计出算法并编程实现。
习题
1. 最长公共子序列
一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X=<x1, x2,…, xm>,则另一序列Z=<z1, z2,…, zk>是X的子序列是指存在一个严格递增的下标序列 <i1, i2,…, ik>,使得对于所有j=1,2,…,k有
解答如下:
a) 最长公共子序列的结构
若用穷举搜索法,耗时太长,算法需要指数时间。
易证最长公共子序列问题也有最优子结构性质
设序列X=<x1, x2, …, xm>和Y=<y1, y2, …, yn>的一个最长公共子序列Z=<z1, z2, …, zk>,则:
i. 若xm=yn,则zk=xm=yn且Zk-1是Xm-1和Yn-1的最长公共子序列;
ii. 若xm≠yn且zk≠xm ,则Z是Xm-1和Y的最长公共子序列;
iii. 若xm≠yn且zk≠yn ,则Z是X和Yn-1的最长公共子序列。
其中Xm-1=<x1, x2, …, xm-1>,Yn-1=<y1, y2, …, yn-1>,Zk-1=<z1, z2, …, zk-1>。
最长公共子序列问题具有最优子结构性质。
b) 子问题的递归结构
由最长公共子序列问题的最优子结构性质可知,要找出X=<x1, x2, …, xm>和Y=<y1, y2, …, yn>的最长公共子序列,可按以下方式递归地进行:当xm=yn时,找出Xm-1和Yn-1的最长公共子序列,然后在其尾部加上xm(=yn)即可得X和Y的一个最长公共子序列。当xm≠yn时,必须解两个子问题,即找出Xm-1和Y的一个最长公共子序列及X和Yn-1的一个最长公共子序列。这两个公共子序列中较长者即为X和Y的一个最长公共子序列。
由此递归结构容易看到最长公共子序列问题具有子问题重叠性质。例如,在计算X和Y的最长公共子序列时,可能要计算出X和Yn-1及Xm-1和Y的最长公共子序列。而这两个子问题都包含一个公共子问题,即计算Xm-1和Yn-1的最长公共子序列。
我们来建立子问题的最优值的递归关系。用c[i,j]记录序列Xi和Yj的最长公共子序列的长度。其中Xi=<x1, x2, …, xi>,Yj=<y1, y2, …, yj>。当i=0或j=0时,空序列是Xi和Yj的最长公共子序列,故c[i,j]=0。建立递归关系如下:
c) 计算最优值
由于在所考虑的子问题空间中,总共只有θ(m*n)个不同的子问题,因此,用动态规划算法自底向上地计算最优值能提高算法的效率。
计算最长公共子序列长度的动态规划算法LCS_LENGTH(X,Y)以序列X=<x1, x2, …, xm>和Y=<y1, y2, …, yn>作为输入。输出两个数组c[0..m ,0..n]和b[1..m ,1..n]。其中c[i,j]存储Xi与Yj的最长公共子序列的长度,b[i,j]记录指示c[i,j]的值是由哪一个子问题的解达到的,这在构造最长公共子序列时要用到。最后,X和Y的最长公共子序列的长度记录于c[m,n]中。
程序如下:
#include<stdio.h>
#include<string.h>
int lcs_length(char x[], char y[]);
int main()
{
char x[100],y[100];
int len;
while(1)
{
scanf("%s%s",x,y);
if(x[0]=='0') //约定第一个字符串以‘0’开始表示结束
break;
len=lcs_length(x,y);
printf("%d/n",len);
}
}
int lcs_length(char x[], char y[] )
{
int m,n,i,j,l[100][100];
m=strlen(x);
n=strlen(y);
for(i=0;i<m+1;i++)
l[i][0]=0;
for(j=0;j<n+1;j++)
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/凡人多烦事01/article/detail/169538
推荐阅读
article
Linux
中如何对
文件
进行
压缩
?_
linux
文件
夹
压缩
...
在
Linux
中,可以对
文件
进行
压缩
的命令有很多种,比如gzip命令。该命令主要用于对
文件
进行
压缩
和解
压缩
,通过此命令
压缩
...
赞
踩
article
中国
电子
学会
2023年03月
C++
语言等级
考试
试卷一级
真题
及(
参考答案
)_
电子
学会
c++
考试
真题
...
中国
电子
学会
2023年03月
C++
语言等级
考试
试卷一级
真题
及(
参考答案
)_
电子
学会
c++
考试
真题
电子
学会
c++
考试
真题
...
赞
踩
article
分布式文件系统
FastDFS
...
在内存中记录集群中group和storage server的状态信息,是连接Client和Storage server的...
赞
踩
article
电脑
重置
可能
出现
的
问题
及
解决办法
_联想小新
初始化
电脑
时
出现
问题
...
电脑
重置
后没有以太网,有以太网后无法识别网络_联想小新
初始化
电脑
时
出现
问题
联想小新
初始化
电脑
时
出现
问题
...
赞
踩
article
Openwrt
动态
DNS
(D
DNS
)更新通配
aliyun
域名
(含*的
aliyun
域名
)_阿里云dn...
使用
Openwrt
的动态
DNS
(D
DNS
)更新通配
aliyun
域名
(含*的
aliyun
域名
),比如,*.home.myd...
赞
踩
article
linux
NFS启动失败_
failed
to
start
nfs
.
service
:
unit
nf...
新装ubuntu时
nfs
挂载失败_
failed
to
start
nfs
.
service
:
unit
nfs
.serv...
赞
踩
article
Django
的
毕业设计
题目商城|电商|商品|
钢笔
展销
系统
_基于
django
的
毕业设计
题目...
计算机
毕业设计
python毕设项目之
django
高端
钢笔
展销
系统
_基于
django
的
毕业设计
题目基于
django
的
毕业设...
赞
踩
article
2024
Java
85w
字
面试
宝典
+从入门到架构师
的
学习路线图+
Java
开发求职手册
,
我
终于做出来
了
!...
这几年中
,
我
遇到
了
很多不同困境中
的
Java
开发者
,
让
我
有
了
一个思考
,
在做教育这件事情上
,
我
的
目标是什么?为此
,
我
思考
了
很...
赞
踩
article
开源
许可证
GPL
、BSD、MIT、
Mozilla
、
Apache
和
L
GPL
的区别_
开源
许可证
区别...
开源
许可证
_
开源
许可证
区别
开源
许可证
区别 1 什么是
开源
许可证
开源
许可证
是一种法律许可。通过它...
赞
踩
article
Minecraft
-你好“
红石
计划
”_
forge1.12
.
214.23
.
4.2705
...
123_
forge1.12
.
214.23
.
4.2705
forge1.12
.
214.23
.
4.2705
...
赞
踩
article
Apache
-2.4安装(
Liunx
环境)_
expat
_2.0.1.
orig
.
tar
.gz...
闲话少说,直接上步骤:一、安装包准备在编译安装
Apache
2.4前,需先安装Apr、Apr-util、Expat、Pcr...
赞
踩
article
通过
VBA
锁定
单元格
的值...
'本功能可以实现通过判断表格第26列的布尔值来决定是否允许用户修改
单元格
的值 '不允许修改的逻辑为:保存上一次选中
单元格
...
赞
踩
article
算法知识之
最长
公共
子
序列
问题(
动态
规划
)...
关于
动态
规划
的
最长
公共
子
序列
的问题希望对大家有所帮助,同时也帮助自己回顾该知识点.一.
最长
公共
子
序列
的定义 二.最优
子
结...
赞
踩
article
FastDFS
学习--
2
.
FastDFS
系统架构和功能原理_
fastdfs
1
主
2
从
的
...
文章目录架构详解设计理念文件上传文件下载文件同步文件删除断点续传文件http访问支持架构详解storage server...
赞
踩
article
jxTMS
--导出
Excel
文件_
excel
出现
tmstv
...
jxTMS
:低成本快速定制的业务系统个人开发平台。导出
Excel
文件上篇文章讲述了
jxTMS
中如何从
excel
文件中导入...
赞
踩
article
数据结构
知识复习
(
一
)_非空
线性表
表头
和
表尾
一
定唯
一
吗...
数据结构
指数据元素的集合及元素间的相互关系
和
构造方法。元素之间的相互关系是数据的逻辑结构,数据元素及元素间关系的存储称为...
赞
踩
article
Linux
(
本地
yum
源
+远端
yum
源
切换
+
局域网
yum
源
)部署详细步骤
_
yum
切换
源
...
本地
yum
源
是将所需的软件包从互联网上下载并存储在内部网络中的服务器上的策略。这样,内部计算机可以从
本地
服务器获取软件包...
赞
踩
article
《
幻兽
帕鲁
》
游戏
服务器
保护——防
“
火箭队
”搞破坏(亲测有效)_
帕鲁
服务器
火箭队
...
通过零信任防火墙解决
“
幻兽
帕鲁
”
帕鲁
服务器
火箭队
《
幻兽
帕...
赞
踩
article
大文件
分片
上传
与
断点续传
_
fastdfs
分片
上传
和
断点续传
...
由于java天生缺陷 但是项目需要
上传
大文件,所以做了一个
分片
上传
,话不多说..UploadFileUtil.java ...
赞
踩
article
沈师PTA
数据结构
判断,附
解析
版_
数据结构
的
抽象
操作
的
定义与具体
实现
有关
...
沈师PTA
数据结构
判断,
解析
版:数据元素可以由类型互不相同
的
数据项构成,算法和程序在
数据结构
中是通用
的
,数据元素是数据
的
...
赞
踩
相关标签
linux
运维
服务器
c++
算法
开发语言
java
学习
经验分享
ddns
network
ubuntu
python
django
面试
后端
minecraft
apache
vba
excel
算法知识
最长公共子序列
动态规划
LCSLength
fastdfs