图论中一个经典问题就是求最短路,最为基础和最为经典的算法莫过于 Dijkstra 和 Floyd 算法,一个是贪心算法,一个是动态规划,这也是算法中的两大经典代表。用一个简单图在纸上一步一步演算,也是很好理解的,理解透自己多默写几次即可记住,机试时主要的工作往往就是快速构造邻接矩阵了。
对于平时的练习,一个很厉害的 ACMer 说:“刷水题可以加快我们编程的速度,做经典则可以让我们触类旁通,初期如果遇见很多编不出,不妨就写伪代码,理思路,在纸上进行整体分析和一步步的演算,然后在转换成代码,再反复迭代”。L...
分类:
其他好文 时间:
2014-06-22 20:36:46
阅读次数:
269
克鲁斯卡尔算法(Kruskal's algorithm)是两个经典的最小生成树算法的较为简单理解的一个。这里面充分体现了贪心算法的精髓。大致的流程能够用一个图来表示。这里的图的选择借用了Wikipedia上的那个。很清晰且直观。首先第一步,我们有一张图,有若干点和边例如以下图所看到的:第一步我们要做...
分类:
其他好文 时间:
2014-06-22 09:46:37
阅读次数:
194
二分算法求最值,掌握了算法的本质和模板,主要就是答案验证过程,验证过程经常使用贪心算法。关键是根据题目要求设立命题check(x)。验证答案mid:Check(mid):是否成立?求满足条件Check(mid)的最小值:–if check(mid) then r:=mid else l:=mid+1...
分类:
其他好文 时间:
2014-06-17 21:19:25
阅读次数:
170
地道
Time Limit(Common/Java):1000MS/3000MS Memory Limit:65536KByte
Total Submit:289 Accepted:60
Description
话说南京的城市规划一般一般,各个大学分布极不合理,难于沟通。
我们夜猫族打算用一种常人难以想象的方式建立大学通道:用地道使...
分类:
其他好文 时间:
2014-06-16 23:04:13
阅读次数:
303
贪心算法,每条路径最短2格,故前k-1步每次走2格,最后一步全走完由于数据比较小,可以先打表#include
#include #include #include using namespace std;typedef pair Point;int main(){
int n, m, k, f...
分类:
其他好文 时间:
2014-06-10 00:33:15
阅读次数:
302
问题描述:
有一个需要使用每个资源的n个活动组成的集合S={a1,a2,···,an},资源每次只能由一个活动使用。每个活动a都有一个开始时间和结束时间,且0 File
Name: Activity_selector.c > Author: He Xingjie > Mail: gxm...
分类:
其他好文 时间:
2014-06-08 00:31:13
阅读次数:
319
LeetCode Problem -- Best Time to Buy and Sell Stock
Greedy Algorithms 贪心算法...
分类:
其他好文 时间:
2014-06-05 04:36:58
阅读次数:
239
5类算法小结:
递归与分治法, 动态规划, 贪心算法, 回溯法, 分支界限法...
分类:
其他好文 时间:
2014-06-01 13:59:44
阅读次数:
269
可用贪心算法解决的几个基本问题分类:算法2011-08-24
12:36950人阅读评论(0)收藏举报算法活动作业c关键:看问题有没有贪心选择性质和最优子结构性质。有些问题看似是可以用贪心算法,但是实际用贪心算法却得不到最优解。构造贪心算法后,需要一定的证明来确定它的正确性。常用证明方法:反证法、调...
分类:
其他好文 时间:
2014-05-31 02:57:58
阅读次数:
188
活动安排问题要求高效地安排一系列争用某一公共资源的活动,贪心算法提供了一个简单的方法,使尽可能多的活动能兼容地使用公共资源。贪心算法并不总能求得问题的整体最优解,但对于活动安排问题,贪心算法却能做到,使得最终所确定的相容活动集合的规模最大,证明不在这里给出。代码如下:
def greedyManage(meeting):
length=len(meeting)
meeting.sort(ke...
分类:
编程语言 时间:
2014-05-21 14:13:42
阅读次数:
232