
动态规划
Aegeaner
这个作者很懒,什么都没留下…
展开
-
【动态规划】矩阵链乘法代码
CLRS 15.2 #include #include #include int m[101][101]; int s[101][101]; void matrix_chain_order(int p[], int n) { for(int i=1; i<=n; i++) m[i][i] = 0; for(int l=2; l<=n; l++)原创 2012-04-11 16:53:54 · 1158 阅读 · 0 评论 -
【动态规划】装配线调度代码
CLRS第二版15.1: #include int f[2][101]; int l[2][101]; int ff; int ll; void fastest_way(int n, int a[2][n], int t[2][n-1], int e[2], int x[2]) { f[0][0] = a[0][0] + e[0]; f[1][0] = a[1][0]原创 2012-04-11 13:45:21 · 1012 阅读 · 0 评论 -
【动态规划】最长递增子序列代码(UVA 10131)
题目:http://uva.onlinejudge.org/index.php?option=onlinejudge&Itemid=8&page=show_problem&problem=1072 先按大象的体重排序,然后用DP求出大象IQ的最长递减子序列。为了输出这个子序列,每次子序列扩容时使用一个Pre[]数组保存前一个元素的索引,将索引压栈后正序输出。 #include #incl原创 2012-04-11 22:05:16 · 1356 阅读 · 0 评论 -
【动态规划】多部图问题代码
《计算机算法(C++版)》5.2. 用前向算法和后向算法进行动态规划,前向算法从后往前递推;后向算法,从前往后递推。 C++代码如下: #include #include #include using namespace std; class Graph { private: const static int MAXSIZE = 101; int VertexNum; in原创 2012-04-12 21:32:36 · 1355 阅读 · 0 评论 -
【动态规划】每对顶点之间的最短路径之Floyd-Warshall算法
《算法导论》25.2. 《计算机算法(C++版)》5.3. 当然这个算法的实现是相当简单的,只使用了三重循环,时间复杂度为O(n^3)。但是重点是算法背后的思想,一般教材都把这个算法当做典型的图算法来讲,却没有讲到背后动态规划的思想。不过《计算机算法(C++版)》做到了这一点。此题的最优子结构很明显,假设i到j的最短路径是d,那么明显对路径上的任一点k,有d、d都是最短路径。但是这样的子问题很难原创 2012-04-13 17:02:21 · 2770 阅读 · 1 评论