算法:动态规划经典题目(10)

这些问题都是从别人博客里复制过来的,仅供自己学习的资料,都已经表明出处,看见大佬写的文章这样好 我就直接发链接!!!(仅供自己学习的资料)。

1.矩阵连乘问题

问题描述】

给定n个矩阵{A1,A2,…,An},其中Ai与Ai+1是可乘的,i=1,2…,n-1。如何确定计算矩阵连乘积的计算次序,使得依此次序计算矩阵连乘积需要的数乘次数最少。例如,给定三个连乘矩阵{A1,A2,A3}的维数分别是10*100,100*5和5*50,采用(A1A2)A3,乘法次数为10*100*5+10*5*50=7500次,而采用A1(A2A3),乘法次数为100*5*50+10*100*50=75000次乘法,显然,最好的次序是(A1A2)A3,乘法次数为7500次。

http://www.cnblogs.com/scarecrow-blog/p/3712580.html

https://blog.csdn.net/qq_32919451/article/details/80643118

2.最长公共子序列

问题描述】

某个序列的子序列是从最初序列通过去除某些元素但不破坏余下元素的相对位置而形成的新序列。比如,BCAB是序列ABCBDAB的一个子序列。而最长公共子序列问题是寻找两个或多个已知序列它们最长的子序列。比如我们要寻找序列ACBDAW和序列DBAW的最长公共子序列,应该是BAW,长度为3。

https://www.cnblogs.com/Jason-Damon/p/3245443.html

https://blog.csdn.net/yysdsyl/article/details/4226630

3.最大子段和

问题描述】

最大子段和问题,又称最大子序列和问题。问题描述如下:

给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+a[j]},1<=i<=j<=n。

例如,当(a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8])=(4, -3, 5, -2, -1, 2, 6, -2)时,最大子段和为11。

https://blog.csdn.net/Return_head/article/details/90709987

https://blog.csdn.net/yogima/article/details/80045067

4.凸多边形最优三角部分

问题描述】

(1)凸多边形的三角剖分:将凸多边形分割成互不相交的三角形的弦的集合T。

(2)最优剖分:给定凸多边形P,以及定义在由多边形的边和弦组成的三角形上的权函数w。要求确定该凸多边形的三角剖分,使得该三角剖分中诸三角形上权之和为最小。

https://blog.csdn.net/liufeng_king/article/details/8639376

5.多边形游戏

问题描述】

多边形游戏是一个单人玩的游戏,开始时有一个由n个顶点构成的多边形。每个顶点被赋予一个整数值,每条边被赋予一个运算符+或*。所有边依次用整数从1到n编号,游戏第1步,将一条边删除。

随后n-1步按以下方式操作:

(1)选择一条边E以及由E连接着的两个顶点V1和V2 ;

(2)用一个新的顶点取代边E以及由E连接着的两个顶点V1 和V2将由顶点V1 和V2的整数值通过边E上的运算得到的结果赋予新顶点。

最后,所有边都被删除,游戏结束。游戏的得分就是所剩顶点上的整数值。

问题:对于给定的多边形,计算最高分。

https://blog.csdn.net/u013240812/article/details/23779773

https://blog.csdn.net/GailyYelp/article/details/60817140

6.图像压缩

问题描述】

在计算机中,常用像素点的灰度值序列{p1,p1,……pn}表示图像。其中整数pi,1<=i<=n,表示像素点i的灰度值。通常灰度值的范围是0~255。因此最多需要8位表示一个像素。

      压缩的原理就是把序列{p1,p1,……pn}进行设断点,将其分割成一段一段的。分段的过程就是要找出断点,让一段里面的像素的最大灰度值比较小,那么这一段像素(本来需要8位)就可以用较少的位(比如7位)来表示,从而减少存储空间。

     b代表bits,l代表length,分段是,b[i]表示每段一个像素点需要的最少存储空间(少于8位才有意义),l[i]表示每段里面有多少个像素点,s[i]表示从0到i压缩为一共占多少存储空间。

     如果限制l[i]<=255,则需要8位来表示l[i]。而b[i]<=8,需要3位表示b[i]。所以每段所需的存储空间为l[i]*b[i]+11位。假设将原图像分成m段,那么需要位的存储空间。

      图像压缩问题就是要确定像素序列{p1,p1,……pn}的最优分段,使得依此分段所需的存储空间最小。
https://blog.csdn.net/liufeng_king/article/details/8648195

7.电路布线

问题描述】

 在一块电路板的上、下两端分别有n个接线柱。根据电路设计,要求用导线(i,π(i)) 将上端接线柱i与下端接线柱π(i)相连,如下图。其中,π(i),1≤ i ≤n,是{1,2,…,n}的一个排列。导线(I, π(i))称为该电路板上的第i条连线。对于任何1 ≤ i ≤ j ≤n,第i条连线和第j条连线相交的充要条件是π(i)> π(j).

π(i)={8,7,4,2,5,1,9,3,10,6}

         在制作电路板时,要求将这n条连线分布到若干绝缘层上。在同一层上的连线不相交。电路布线问题要确定将哪些连线安排在第一层上,使得该层上有尽可能多的连线。换句话说,该问题要求确定导线集Nets = {i,π(i),1 ≤ i ≤ n}的最大不相交子集。    
https://blog.csdn.net/liufeng_king/article/details/8671407

8.流水作业调度

问题描述】

n个作业{1,2,…,n}要在由2台机器M1和M2组成的流水线上完成加工。每个作业加工的顺序都是先在M1上加工,然后在M2上加工。M1和M2加工作业i所需的时间分别为ai和bi。流水作业调度问题要求确定这n个作业的最优加工顺序,使得从第一个作业在机器M1上开始加工,到最后一个作业在机器M2上加工完成所需的时间最少。

https://blog.csdn.net/liufeng_king/article/details/8678316
 

9.背包问题

问题描述】

给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为C。问:应如何选择装入背包的物品,使得装入背包中物品的总价值最大?

     形式化描述:给定c >0, wi >0, vi >0 , 1≤i≤n.要求找一n元向量(x1,x2,…,xn,), xi∈{0,1}, ∋ ∑ wi xi≤c,且∑ vi xi达最大.即一个特殊的整数规划问题。

https://blog.csdn.net/liufeng_king/article/details/8683136

10.最优二叉搜索树

问题描述】

https://blog.csdn.net/liufeng_king/article/details/8694652

发布了104 篇原创文章 · 获赞 15 · 访问量 7774

猜你喜欢

转载自blog.csdn.net/Kobe51920/article/details/103912457
今日推荐