任务安排类型的动态规划法计算。
思路1:
1 按照任务的结束时间排序
2 填表,使用一维表即可,表的值表示以当前时间点为结束时间,得到的最大效率。那么就得到状态转换方程:arr[i] = max (arr[i], arr[mt[i].st]+mt[i].ef)
其中mt[i].st代表当前任务的起止时间,mt[i].ef代表当前任务的效率。
3 那么当当前计算的时间点不是某任务的结束时间,改如何处理呢?可以直接把之前计算得到的最大效率填上来就可以。
4 还有最重要的处理特殊情况-很容易栽跟斗的地方: 如果两...
分类:
其他好文 时间:
2014-12-27 12:46:19
阅读次数:
115
/*
* copyleft@hustyangju
* 问题:longest common subsequece problem
* 思路:从底往上,利用动态规划,划分子问题,利用LCS子问题的长度变化,求得LCS
* 时间复杂度O(m*n)
* 空间复杂度O(m*n)
*/
#include
#include
using namespace std;
class lcs
{
p...
分类:
编程语言 时间:
2014-12-26 13:01:52
阅读次数:
468
Description
A (binary) heap is an array that can be viewed as a nearly complete binary tree. In this problem, we are talking about max-heaps.
A max-heap holds the property that for each node tha...
分类:
其他好文 时间:
2014-12-05 12:45:02
阅读次数:
216
本题也是一种背包问题,就是需要求出有多少种组合。
本题的新意就是:
1 利用两个long long数表示大数的高位和低位就能满足不溢出了
2 高位和低位需要仔细计算好
建模:
dp[i][j]:表示计算当前i物品的时候有j钱币的时候有多少种组合。
那么状态转换:dp[i][j] = dp[i-1][j] + dp[i][j-i]//dp[i-1][j]表示前一种物品计算出的组合数,也就是不买i物品的组合数, dp[i][j-i]表示空出i钱币购买i物品的组合数
难点:
仔细观察,会发现其实不单止不用二维数...
分类:
其他好文 时间:
2014-12-03 12:26:40
阅读次数:
189
一看这道题总觉得是字符串处理问题,其实是需要建模动态规划法的题解。
动态规划法的建模都感觉是最难的一关了,当然最简单是参考别人的,自己建模真的很难。
本题的建模就是利用一个二维数组palin[i][j],代表j个字符,就是如果字符串的起点下标为i,那么i到i+j-1字符的最小修改值是多少。
也可以用递归的思维从这个字符串一步一步往更小的字符串递推出来。
最终优化程序,使用滚动数组变二维数组维一维。
下面程序作出详细注解:...
分类:
其他好文 时间:
2014-11-30 12:36:33
阅读次数:
112
一、实验目的:熟悉掌握动态规划法设计技术二、实验要求:1、按教材所授内容要求,完成“最长公共子序列问题”算法。得到一个完整正确的程序。2、问题规模:不少于1003、输出最终结果。三、实验设备:PC机一台Vc++6.0编译软件一套四、问题描述:若给定序列X={x1,x2,…,xm},则另一序列Z={z...
分类:
编程语言 时间:
2014-11-15 21:45:22
阅读次数:
558
一、实验目的:熟悉掌握动态规划法设计技术二、实验要求:1、按教材所授内容要求,完成“矩阵连乘问题”算法。得到一个完整正确的程序。2、问题规模:不少于203、输出最终结果。三、实验设备:PC机一台VC6.0编译软件四、问题描述:给定n个矩阵{A1,A2,…,An},其中Ai与Ai+1是可乘的,i=1,...
分类:
编程语言 时间:
2014-11-15 21:44:55
阅读次数:
1337
Description
Farmer John recently bought another bookshelf for the cow library, but the shelf is getting filled up quite quickly, and now the only available space is at the top.
FJ has N cows (1 ≤ ...
分类:
其他好文 时间:
2014-11-12 09:21:52
阅读次数:
238
动态规划算法其实就是一种优化的算法,其基本思想就是将待求解的问题分解成若干子问题,先求解子问题(这些解不是独立的),然互从这些子问题中得到原问题的解。其最终得到的结果往往是最优解。和贪心法不同的是,动态规划法不可以将一个整体进行分割。
举个简单的例子:给出7个数,1,2.....7,从中选出不超过3个使得这3个数的和不超过20.求解时我们应该一步一步进行:
...
分类:
编程语言 时间:
2014-11-07 09:54:51
阅读次数:
186
?比较著名的算法有 冒泡法,贪?心算法,递归法,迭代法,分治法,动态规划法,分?支限界 法,回溯法,A*寻路算法 等等。? ps:记录下,日后多多练习这些算法。
分类:
编程语言 时间:
2014-11-03 06:49:37
阅读次数:
208