随笔分类 -  算法

【转载】binary_search, lower_bound, upper_bound
摘要:[代码] 阅读全文

posted @ 2009-10-19 19:43 MyShowTime 阅读(275) 评论(0) 推荐(0)

poj3436 ACM Computer Factory (最大流)
摘要:最大流的问题主要的难度一般在构图上,这题可以这样构图:源点指向input中没有1(即为0或2)的machine,output全为1的machine指向汇点,machine1与machine2相连的条件为machine1的output与machine2的input之和不等于1(即组合为00,11, 21或20,但不能是01)。以下是EK算法的实现:[代码] 阅读全文

posted @ 2009-07-20 10:34 MyShowTime 阅读(1072) 评论(3) 推荐(1)

Dinic算法 (poj3281 Dining)
摘要:关于Dinic算法(Dinic's algorithm, Dinitz blocking flow algorithm)步骤: [代码]层次图指用一次BFS计算每个节点到源点的距离(level),源点的level为0。Dinic精髓在第三步,在层次图内用一次DFS增广。在程序实现的时候,层次图并不需要被构造出来,只需要对每个顶点标记一个层次,寻找路径的时候,判断边是否满足level[u]+1==l... 阅读全文

posted @ 2009-07-17 19:05 MyShowTime 阅读(2814) 评论(0) 推荐(0)

【转载】网络流和最小费用流
摘要:Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 这段时间复习了下网络流模型,感觉比以前的理解有了长足进展,虽然我知道这东西难就难在建模上,而它的算法本身其实难度不大,但我还是决定说一些我的理解,毕竟理解了本质的东西运用起来才会更灵活。 最大流的求解一般有两类算法(用费用流附带求出... 阅读全文

posted @ 2009-07-16 22:41 MyShowTime 阅读(2090) 评论(0) 推荐(1)

poj1459 Power Network (最大流)
摘要:多源最大流问题,可以构造成一般最大流问题,增加一个起点和一个终点。起点指向每个Power station,边的权值为Power station的Pmax。每个Consumer指向终点,边的权值为Cmax。Dispatcher看做一般节点。用EK算法算法实现的版本,Time:766MS[代码]又用Dinic算法实现了一次,Time:438MS ,时间果然有很大提高[代码]END 阅读全文

posted @ 2009-07-14 21:24 MyShowTime 阅读(974) 评论(0) 推荐(0)

poj1273 Drainage Ditches (最大流)
摘要:用Edmonds Karp算法(Ford_Fulkerson算法)实现的最大流。这题注意一下两点间可以有多条路径就OK了(代码第97行).以下是AC代码:[代码] 阅读全文

posted @ 2009-07-14 14:34 MyShowTime 阅读(544) 评论(0) 推荐(0)

【转载】poj 图论题目列表
摘要:1062*昂贵的聘礼枚举等级限制+dijkstra 1087*APlugforUNIX2分匹配 1094SortingItAllOutfloyd或拓扑 1112*TeamThemUp!2分图染色+DP 1125StockbrokerGrapevineFLOYD 1135DominoEffect最短路 1149*PIGS网络流1161*Wallsfloyd 1201Intervals差分约束 123... 阅读全文

posted @ 2009-07-13 19:46 MyShowTime 阅读(3993) 评论(0) 推荐(1)

匈牙利算法 (poj1422-Air Raid,poj1469-COURSES)
摘要:首先注意区分“最小路径覆盖”(minimum path cover)和“最小边覆盖”(minimum edge cover)以及“最小点覆盖”(minimum vertex cover)之间的区别。详细资料可以查询Wiki。 最小路径覆盖可以转化为二分图的最大匹配(maximum bipartite matching) 。公式... 阅读全文

posted @ 2009-07-13 08:55 MyShowTime 阅读(1642) 评论(1) 推荐(0)

【转载】ZOJ题目分类
摘要:图论1525 Air Raid 简单题,最小路径覆盖 1500 Pre-Post-erous! 简单题 1501 Knockout Tournament 简单题 1508 Intervals 对您来说应该是简单题,但我想了n久……,差分限制系统 1333 Galactic Import 简单题 1304 Tin Cutter 简单题,但是似乎有空间复杂度为O(n)的算法 1... 阅读全文

posted @ 2009-07-11 13:48 MyShowTime 阅读(694) 评论(0) 推荐(0)

NUPT-社会关系网
摘要:Description 现代社会通信便捷,借助于Internet形成了各式各样的社区,每个人都可能属于多个社交圈,尤其是Facebook类社交网站的出现,使世界缩小了,人与人的交往扩大了频繁了。sed同学正在做这方面的毕业设计课题,指导老师给他布置了一个任务:已知一群人的社会关系网络,判断两个人之间的关系,他们是否可以通过社交圈的人相互结识。 Input 第一行包括三个整数:n、 m... 阅读全文

posted @ 2009-05-27 17:08 MyShowTime 阅读(580) 评论(1) 推荐(0)

操作系统页面置换算法模拟
摘要:一.实验目的 通过模拟实现请求页式存储管理的几种基本页面置换算法,了解虚拟存储技术的特点,掌握虚拟存储请求页式存储管理中几种基本页面置换算法的基本思想和实现过程,并比较它们的效率。二.实验内容设计一个虚拟存储区和内存工作区,并使用下述算法计算访问命中率。1.最佳淘汰算法(OPT)2.先进先出的算法(FIFO)3.最近最久未使用算法(LRU)[代码]END 阅读全文

posted @ 2009-05-24 20:56 MyShowTime 阅读(2077) 评论(0) 推荐(0)

poj1860-Currency Exchange
摘要:第一个单源最短路径算法,因为题目可能存在负边,所以用Bellman Ford算法,原始Bellman Ford可以用来求负环,这题需要改进一下用来求正环。前几次试验一直被图的数据结构所困扰:一开始采用链表,因为BF算法要遍历所有边,而链表对边的遍历占速度优势;后来发现链表操作太繁琐,总共100x100的矩阵,用数组也行,于是想用数组;后来参考了一下大牛们的代码,发现其实用一维数组就能解决问题了。数... 阅读全文

posted @ 2009-05-19 16:40 MyShowTime 阅读(544) 评论(0) 推荐(0)

【转载】SPFA算法
摘要:算法简介 SPFA(Shortest Path Faster Algorithm)是Bellman-Ford算法的一种队列实现,减少了不必要的冗余计算。也有人说SPFA本来就是Bellman-Ford算法,现在广为流传的Bellman-Ford算法实际上是山寨版。 求单源最短路的SPFA算法的全称是:ShortestPathFasterAlgorithm。 从名字我们就可以看出,这种算法在效率上一... 阅读全文

posted @ 2009-05-15 21:35 MyShowTime 阅读(2533) 评论(0) 推荐(3)

poj2503 Babelfish (hash)
摘要:这是用ELFHash做的版本:[代码]Memory:5872KTime:297MS 阅读全文

posted @ 2009-05-14 09:25 MyShowTime 阅读(359) 评论(0) 推荐(0)

【转载】字符串Hash函数比较
摘要:原址链接:http://www.cmykrgb123.cn/blog/string-hash-compare/常用的字符串Hash函数还有ELFHash,APHash等等,都是十分简单有效的方法。这些函数使用位运算使得每一个字符都对最后的函数值产生影响。另外还有以MD5和SHA1为代表的杂凑函数,这些函数几乎不可能找到碰撞。常用字符串哈希函数有BKDRHash,APHash,DJBHash,JSH... 阅读全文

posted @ 2009-05-13 18:37 MyShowTime 阅读(763) 评论(1) 推荐(1)

poj2503 Babelfish
摘要:跟poj3349很类似的题目,这题还稍简单。用qsort快速排序和二分查找可以很轻松AC。以下是代码: Run ID User Problem Result Memory Time Language Code Length Submit Time 5135234 zen_chou 2503 Accepted 2356K 547MS C 1212B 2009-05-11 20:12:26 [代码] 阅读全文

posted @ 2009-05-11 20:15 MyShowTime 阅读(299) 评论(0) 推荐(0)

poj3349 Snowflake Snow Snowflakes
摘要:自己写的第一个hash。思路比较复杂:以六个数的平方和作为key。hash function为index=key mod 99991(99991为不大于100 000的最大质数)。将这个key保存到f[index]中。如果碰到有相同key值的数(相同key但不一定完全相同雪花),对这两片雪花进行仔细的比较,如果相同则返回;如果不同将此key保存到f[index2]。hash function为in... 阅读全文

posted @ 2009-05-08 18:49 MyShowTime 阅读(267) 评论(0) 推荐(0)

poj1789 Truck History
摘要:花了好长时间去理解题意,看来英语阅读能力还有待提高。 题意大概是这样的:用一个7位的string代表一个编号,两个编号之间的distance代表这两个编号之间不同字母的个数。一个编号只能由另一个编号“衍生”出来,代价是这两个编号之间相应的distance,现在要找出一个“衍生”方案,使得总代价最小,也就是distance之和最小。 例如有如下4个编号: aaaaaaa baaaaaa abaa... 阅读全文

posted @ 2009-04-04 15:37 MyShowTime 阅读(776) 评论(2) 推荐(1)

poj2109 Power of Cryptography
摘要:不多说什么了。 Code Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> 1 #include 2 #include 3 main() 4 { 5 double n=0, p=0; 6 //freopen("i... 阅读全文

posted @ 2009-04-04 14:46 MyShowTime 阅读(167) 评论(0) 推荐(0)

poj1328-Radar Installation
摘要:思想:贪心。设最左边一结点为v,从左开始找一个能包含v而且圆心距离v(v在左,圆心在右)最远的坐标,然后判断此点是否能包含下一节点,如果能,继续判断能否包含下一节点,直至不能包含下一结点。然后再从当前结点开始找一个能包含此结点而且圆心距离它(v在左,圆心在右)最远的坐标,依次类推。 可惜此方法是错误的!试考虑下面数据: 2 3 0 2 1 3 正确结果应当是1,但是用以上方法得出结果为2。 但不无... 阅读全文

posted @ 2009-03-28 16:11 MyShowTime 阅读(229) 评论(0) 推荐(0)