![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Uva_动态规划
文章平均质量分 76
Echo_咪
to feel rather than think.
展开
-
10003木棍切割问题
原题详见UVa10003 本文主要包含一下内容: 1.数学模型的建立 2.递推伪代码的推导 3.程序实现 4.总结 关键字: 动态规划 集合 1.数学模型的建立 很多人解不出这道题从根本上是没有读懂题意。我们现在来从头分析一下。 已知:木棍的长度给定为L,切割点数给定为n,而且每个切割点的位置也是固定的。每次切割的花费等于被切割的木棍的长度。 要求:最少原创 2016-08-11 20:51:34 · 3378 阅读 · 1 评论 -
116单向TSP
(原题详见UVa116) 本文主要包含以下内容: 1.数学模型的建立 2.递推伪代码的推导 3.代码实现 4.总结 关键字:动态规划 1.数学模型的建立 这是一道典型的动态规划题目。 定义d[i][j]表示在矩阵i,j处是最小和。那么d[i][j]可能由三种状态转移而来d[i-1][j-1] d[i][j-1] d[i+1][j-1] 状态转移方程原创 2016-08-11 20:20:27 · 326 阅读 · 0 评论 -
10131越大越聪明
(原题详见UVa10131) 本文主要包含以下内容: 1.数学模型的建立 2.递推伪代码 3.具体实现代码 4.总结 关键字:动态规划 DAG 1.数学模型的建立 本题用基于DAG的动态规划的思想很好解决。而且属于起点终点不固定的DAG.(具体可以参考《算法竞赛入门》中动态规划一章,矩形嵌套问题) 把每只大象视作一个个点,点i,j连通的条件是w[i]s[原创 2016-08-11 19:53:21 · 642 阅读 · 1 评论 -
10066双塔
双塔问题实际上就是在两个字符串中寻找最大公共子字符串。 借由双塔问题来具体理解分析一下最大公共子字符串问题。 本文包含以下内容 1.数学模型的建立 2.递推伪代码 3.具体程序 1.数学模型的建立 我们可以想象有两根指针i、j,分别指向数组a,数组b的起始位置。 如果当前两根指针指向的字符是相同的,我们可以把两根指针同时向后移动一位,同时公共子字符串的数目增加1.原创 2016-08-11 19:19:04 · 312 阅读 · 0 评论