3.动态规划典型例题与习题
3.1 最长不降子序列
3.2 背包问题
3.3 最短路径
4.3 习题
3.1 最长不降子序列
(1)问题描述
设有由n个不相同的整数组成的数列,记为:
a(1)、a(2)、……、a(n)且a(i)a(j) (ij)
例如3,18,7,14,10,12,23,41,16,24.
若存在i1=w[i] 1f[i] then f[i]:=t
end;
writeln(f[m]);
end.
3.3 最短路径
问题描述:
如图:求v1到v10的最短路径长度及最短路径.
图的邻接矩阵如下:
0 2 5 1 -1 -1 -1 -1 -1 -1
-1 0 -1 -1 12 14 -1 -1 -1 -1
-1 -1 0 -1 6 10 4 -1 -1 -1
-1 -1 -1 0 13 12 11 -1 -1 -1
-1 -1 -1 -1 0 -1 -1 3 9 -1
-1 -1 -1 -1 -1 0 -1 6 5 -1
-1 -1 -1 -1 -1 -1 0 -1 10 -1
-1 -1 -1 -1 -1 -1 -1 0 -1 5
-1 -1 -1 -1 -1 -1 -1 -1 0 2
-1 -1 -1 -1 -1 -1 -1 -1 -1 0
采用逆推法
设f(x)表示点x到v10的最短路径长度
则 f(10)=0
f(x)=min{ f(i)+a[x,i] 当a[x,i]>0 ,x