第一章算法回顾我接触算法设计已经5年了,从一开始零零散散,浅尝辄止,到现在全面学习,深入探究,学到了不少的优秀算法,在这里我想分享一下我这几年来总结的学习方法。1.算法回顾首先我先把看过的算法思想说一下,再介绍几种最近出现的新思想。1.1贪心思想顾名思义,贪心算法总是作出在当前看来最好的选择。也就是...
分类:
编程语言 时间:
2015-01-28 17:43:58
阅读次数:
190
题目大意:
有m个医生和n个病人,每个病人检查身体的时间已知。医生必须同时工作或者只有一个人工作,求出检查完所有病人的最少时间。(同一时刻一个病人只能由一个医生检查,医生同时也只能检查一个病人,但是当病人没检查完医生可以换人)
思路:
检查完所有病人的时间和医生同时工作的时间有关,病人检查病的时间分为两个,一个是同时检查时间,剩下的就是一个医生检查的时间,答案就是SUM(病人检查时间)-(m...
分类:
编程语言 时间:
2015-01-24 17:23:52
阅读次数:
248
1 基于贪心算法,我们认为每只船只尽可能到达规定河段的最远营地,依次尾随,有空位则补上。每只船我们作为一个对象,记录类型,露营剩余时间,所在河段,然后依次连接形成一个队列,队列随时间依次拉长,当船只到到达第六个河段且露营天数只剩一天,那么可以从队列拉出。每天第一个河段都有剩余营地数,那么该天出发的....
分类:
其他好文 时间:
2015-01-24 12:54:12
阅读次数:
169
贪心算法的设计思想 贪心算法在解决这个问题的策略上目光短浅,仅仅依据当前已有的信息就做出选择,并且一旦做出了选择,无论将来有什么结果,这个选择都不会改变。换言之,贪心法并非从总体最优考虑,它所做出的选择仅仅是在某种意义上的局部最优。贪心算法对于大部分的优化问题都能产生最优解,但不能总获得总体最...
分类:
编程语言 时间:
2015-01-22 17:44:51
阅读次数:
189
模拟退火 一:概括 1.爬山算法 所谓的爬山算法实际上就是简单的贪心算法,贪心算法通过从当前解的临近空间选择一个最优的解作为新的当前解,因此这个解很有可能是局部最优解,而不是全局最优的。因为A的领域周围没有比他更优的解了。 2.模拟算法 模拟退火算法可以有效的解决这个陷入局部最优解的...
分类:
其他好文 时间:
2015-01-17 20:52:45
阅读次数:
271
一、问题描述0-1背包问题,部分背包问题。分别实现0-1背包的DP算法,部分背包的贪心算法和DP算法。二、算法原理(1)0-1背包的DP算法 0-1背包问题:有n件物品和一个容量为W的背包。第i件物品的重量是w[i],价值是v[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价....
分类:
编程语言 时间:
2015-01-14 00:42:06
阅读次数:
225
以前做贪心题目都第一步对数据进行从大到小的排序,大部分贪心题目的的处理方法也是这样。但是NYOJ的1057题,在解题中
并不需要排序,一时间都没有意识到是贪心题。在看了讨论区之后意识到要用贪心的思想,才解出题目。认识到贪心算法并非是排序后再处理的机械操作,而是从局部寻求最优解的思想。
原题如下:
寻找最大数(三)
时间限制:1000 ms | 内存限制:65535 ...
分类:
编程语言 时间:
2015-01-13 17:48:45
阅读次数:
146
#include
using namespace std;
int m[100][100];
int min(int a,int b)
{
return (ab)?a:b;
}
void knapsack(int v[],int w[],int c,int n)
{
int jMax=mi...
分类:
编程语言 时间:
2015-01-11 01:01:58
阅读次数:
271
题目:
Say you have an array for which the ith element is the price of a given stock on day i.
Design an algorithm to find the maximum profit. You may complete as many transactions as you like (ie,...
分类:
编程语言 时间:
2015-01-08 11:21:57
阅读次数:
239