搜索
查看
编辑修改
首页
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
通达信 day文件 解析_Flink内置数据源:文件数据源
2
腾讯云4核8G服务器支持多少人在线访问?
3
springBoot 启动指定配置文件环境多种方案_springboot指定配置文件启动
4
【远程桌面】nomachine下载安装使用教程、zerotier下载安装使用教程超详细
5
阿里云抢占式实例服务器优缺点适用场景及收费标准_抢占式服务器是什么
6
【MATLAB】tvf_emd_ MFE_SVM_LSTM 神经网络时序预测算法
7
基于Python淘宝图书销售数据可视化系统设计与实现(Django框架) 研究背景与意义、国内外研究现状
8
【知识图谱】Py2neo操作Neo4j使用教程_py2neo neo4j 5.12
9
吴恩达AI FOR Everyone|人工智能入门笔记|_ai for everyone 1-35
10
2024年阿里云2核4G配置服务器测评_ECS和轻量性能测评
当前位置:
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
Win11
无法连接共享
打印机
错误代码
0x00000bc4
解决
方法_
0x00000bc4
完美
解决
win...
WIN11连接共享
打印机
错误问题_
0x00000bc4
完美
解决
win11
0x00000bc4
完美
解决
win11
...
赞
踩
article
Linux
RPM
包
安装
、
卸载
和升级(
rpm
命令
)详解...
下面讲解一下,如何使用
rpm
命令
对
RPM
二进制包进行
安装
、
卸载
和升级操作。我们以
安装
apache 程序为例。L...
赞
踩
article
通过
js
随机
生成
八位
数字
或大
小写
字母
的字符串_
js
随机
生成
8位
数字
和
字母
的组合...
通过
js
随机
生成
八位
数字
或大
小写
字母
的字符串_
js
随机
生成
8位
数字
和
字母
的组合
js
随机
生成
8位
数字
和
字母
的组合 ...
赞
踩
article
树形
结构
(
Python
)_
python
树
结构
...
树(
python
)_
python
树
结构
python
树
结构
树...
赞
踩
article
VBA
锁定
单元格
并记录
单元格
修改
日志无
bug
篇_
vba
.
locked
...
VBA
判断条件
锁定
EXCEL表格
单元格
值,可以是多区域单区域,并且做了优化_
vba
.
locked
vba
.
locked
...
赞
踩
article
分布式
环境中
文件
存储
的解决方案-
分布式
文件
系统
FastDFS
_fastfilestorageclie...
1. 学习
FastDFS
的原因在
分布式
集群环境下,
文件
上传至节点A,这时通过负载均衡算法,访问到节点B,则不能访问到
文件
...
赞
踩
article
二叉树
与
堆
...
目录1.树概念及结构1.1树的概念1.2 树的相关概念1.3 树的表示1.4 树在实际中的运用(表示文件系统的目录树结构...
赞
踩
article
redhat
内网环境中配置
yum
服务器
_
rhel
yum
...
生产环境中,一般不会允许所有
服务器
都能访问公网,理想的情况是有几台
服务器
作为访问代理,同时作为缓存
服务器
。当
服务器
中有所...
赞
踩
article
基于
Python
爬虫湖南
长沙
二手房
数据
可视化
系统设计与实现(
Django
框架)
研究
背景与意义、国内...
基于
Python
爬虫湖南
长沙
二手房
数据
可视化
系统设计与实现(
Django
框架)
研究
背景与意义、国内外
研究
现状踪,为购房...
赞
踩
article
内网
ip
映射
到外网软件之
NAT123
端口
映射
使用方法_
nat123
端口
映射
网络辅助软件...
内网
应用部署后,如果没有公网IP,是只能在
内网
访问的,如果想要让外网访问,就需要将内外网连接打通。在
内网
发布网站到外网,...
赞
踩
article
python
福建
福州
天气预报
数据
可视化
大屏全屏系统设计与实现(
django
框架)...
python
福建
福州
天气预报
数据
可视化
大屏全屏系统设计与实现(
django
框架)。大屏幕展示界面通过
可视化
的方式展示
福州
...
赞
踩
article
基于
SSM
的
高中学生
成绩
管理系统
的
设计
与
实现
_
基于
ssm框架的学生
成绩
管理系统
的
设计
与
实现
的要求...
2.1
SSM
框架结构和SpringBootSpring是该系统的
设计
过程里的总体框架,是一个容器,SpringMVC主要...
赞
踩
article
tar
命令
zcvf
zxvf
和 jcvf
jxvf
_
tar
jxvf
...
目录一、功能介绍二、例子一、功能压缩压缩格式为 ...
tar
.gz
tar
zcvf
[FILE]|[DIRECTORY]...
赞
踩
article
开源许可证
GPL
、
BSD
、
MIT
、Mozilla、
Apache
和
L
GPL
的区别_gpl mit...
开源许可证
GPL
、
BSD
、
MIT
、Mozilla、
Apache
和
L
GPL
的区别?_gpl mitgpl mit ...
赞
踩
article
一条
查询
sql
的
完整
执行
流程
(从
连接
到
引擎
,穿插涉及到
的
知识,超详细)_这条
sql
查询
语句
执行
大概流...
一条
sql
的
完整
执行
流程
_这条
sql
查询
语句
执行
大概
流程
这条
sql
查询
语句
执行
大概
流程
...
赞
踩
article
《
数据结构
与
算法
Python
语言
描述
》裘宗燕 笔记 第五章 栈和
队列
_
数据结构
与
算法
python语言...
《
数据结构
与
算法
Python
语言
描述
》裘宗燕 笔记系列该系列笔记结合PPT的内容整理的,方便以后复习,有需要的朋友可以看...
赞
踩
article
Python
生成
8
位必含数字、大
小写字母
的字符串(密码)_
编写程序
,
使用
random
库
,
生成
8
位大...
生成
8
位含有大
小写字母
、数字的密码_
编写程序
,
使用
random
库
,
生成
8
位大
小写字母
混合密码
编写程序
,
使用
random
库...
赞
踩
article
树莓
派配置简单
java
服务
器并实现
公网
访问
_
java
服务
在本地能用
公网
ip
访问
吗...
树莓
派配置简单
java
服务
器并实现
公网
访问
_
java
服务
在本地能用
公网
ip
访问
吗
java
服务
在本地能用
公网
ip
访问
吗 ...
赞
踩
article
简单描述
开源
许可证GPL、
BSD
、
MIT
、
MPL
、
Apache
的区别_gpl和mpl区别...
GPL:
开源
、免费使用、可以修改,如果你使用了我的软件,那你的软件也需要
开源
、免费;
BSD
:可以自由的使用,但源代码中必...
赞
踩
article
Java
后端
学习路线...
Java
后端
开发是一门非常广泛的领域,需要掌握的知识点也非常多。以下是一个比较全面的
Java
后端
学习路线:_java
后端
...
赞
踩
相关标签
windows
linux
apache
服务器
javascript
python
excel
vba
分布式
分布式文件系统
fastdfs
算法
运维
长沙二手房数据可视化系统
内网ip映射外网
内网映射外网
内网映射到外网
内网ip映射到外网软件
nat123
信息可视化
django
java
linux 命令
tar
zcvf