一、钢条切割二、矩阵链乘法三、最优三角剖分四、连续子数组之和五、单词分割总结:写递归方程的时候,往往不直接是所要求的最优解,所需最优解可能还需要根据递归方程解出来的结果,再次计算。例如,连续子数组之和,它并不是直接求解子数组之和最大,并不是直接根据它来列出递归方程。
分类:
其他好文 时间:
2014-11-06 21:38:15
阅读次数:
122
所谓贪心就是指永远找最大的,在求解问题时,总是做出最好的选择,它得到的是局部的最优解,并不是对所有问题都能得到整体最优解。
其有两个重要的子特性:
1、最优子结构:假如将子结构的一部分去掉,剩下的子结构还是最优子结构。
2、贪心选择性:找单位价值最大的那个。
重点:将给出的一系列问题求解其单位价值(单位...
分类:
编程语言 时间:
2014-11-05 14:49:38
阅读次数:
175
从算法的实现向算法的设计转变,提供解决问题的思路1.贪心算法一种局部最优算法设计思路,思想是保证每一步选择在当前达到最优。一个很常见的贪心算法案例是零钱找取问题。调度问题:书上的调度问题比较简单,其目标是所有作业的平均持续时间(调度+运行)最短,无论是但处理器还是多处理器,最优解的方案总是按作业的长...
分类:
编程语言 时间:
2014-11-04 17:00:22
阅读次数:
372
动态规划的基本思想:将一个问题分解为子问题递归求解,且将中间结果保存以避免反复计算。通经常使用来求最优解,且最优解的局部也是最优的。求解过程产生多个决策序列,下一步总是依赖上一步的结果,自底向上的求解。动态规划算法可分解成从先到后的4个步骤:1. 描写叙述一个最优解的结构,寻找子问题,对问题进行划分...
分类:
其他好文 时间:
2014-11-03 14:33:31
阅读次数:
186
用dfs找到状态的最优解且那个正方形块可以由两个水平块组成,所以无需考虑 1 #include 2 #include 3 #include 4 5 using namespace std; 6 #define N 1005 7 int state[N] , n , m , dp[N][1 5...
分类:
其他好文 时间:
2014-11-02 13:46:46
阅读次数:
147
动态规划(dynamic programming)是通过组合子问题的解而解决整个问题的。与分治法不同的是,动态规划算法对每个子子问题只求解一次,将其结果保存在一张表中。
动态规划通常应用于最优化问题。
动态规划算法的设计可以分为如下4个步骤:
描述最优解的结构;递归定义最优解的值;按自底向上的方式计算最优解的值;由计算结果构造一个最优解。
第1~3步构成问题的动态规...
分类:
编程语言 时间:
2014-11-01 13:33:27
阅读次数:
210
??
如题。
个人觉得有两种思路,第一是归结为旅行商问题,用分支限界法或者其它方法求解。假设一个汉字有n划,就对应2n个点对。每画一划,就少了2个选择,所以总共的解空间大小是2n*2(n-1)*...*2。
第二是归结为中国邮递员问题,走完一个连通图的所有边,怎么走路径最短,通过添加一些多余的边,也是能得到最优解的。但是汉字可能不是一个连通图,怎么办?也许可以先通过计算汉字各划的位置关系,将...
分类:
编程语言 时间:
2014-11-01 13:29:02
阅读次数:
139
题意:给定一位空间里n个点的坐标,每个坐标有一个罪犯,现在要建一个警局,并且这个警局只有一辆车,车一次最多载m个人,问应建在哪是的抓回所有罪犯的路程和最小。思路: 很明显建在罪犯的点上一定可以找到最优解。 那么直接枚举建在哪一个点。。 那么抓罪犯肯定从两边抓最优。所以预处理两个数组即...
分类:
其他好文 时间:
2014-10-31 22:04:49
阅读次数:
175
贪心方法并未考虑整体最优解, 它所做出的选择只是在某种意义上的局部最优选择,不一定能够得到整体最优解。 但是, 有相当一部分问题, 使用贪心方法能够得到整体最优解。
1、装载问题
(1)问题描述
(2)算法描述
2、背包问题
(1)问题描述
(2)背包问题的贪心算法
贪心方法主要用于处理优化问题。 每个优化问题都是由目标函数和约束条件组成。 满足约...
分类:
编程语言 时间:
2014-10-29 13:07:11
阅读次数:
245
动态规划法和分治法类似,它也是将大问题分解成子问题求解,求最优解,不同的是,如果分解的子问题有很多是相同的,采用分治法相同的子问题会求解多次,很影响效率;动态规划法呢,它会保存已解决的子问题的答案,再有相同的子问题直接用保存的答案就行了,节省了很多计算时间。...
分类:
编程语言 时间:
2014-10-28 15:32:58
阅读次数:
172