看目录就好了。不用看具体部分
网络流
二分图
最大匹配
最小点覆盖
最小边覆盖
最小路径覆盖
最大独立集
最大流
上下界最大流
最小割
全局最小割
费用流
上下界费用流
线性规划转费用流
最大权闭合图
RMQ优化建图
单纯形
字符串相关
hash
KMP
扩展KMP
Ma...
分类:
其他好文 时间:
2015-04-23 09:33:21
阅读次数:
437
概念:
最大匹配:二分图上最大对数的点对使得对之间有连边,且任意两点对4个点之间互不相同
最大匹配:无视上面那条,其实就是你找一个点,然后给它连一个有边连过去且没匹配过的点,然后就称得到一个匹配。最大匹配就是匹配数最大是多少。
最大独立集:二分图上最大点数的子点集使得两两之间没有连边
最小边覆盖:二分图上最小条数的子边集使得所有点都被且仅被一条边覆盖
最小路径覆盖:拓扑图上最小条数的路径...
分类:
其他好文 时间:
2015-04-17 11:30:48
阅读次数:
122
这题思路也很简单,就是用一个最大堆堆去维护Prim算法中的Low数组,把刷新Low数组的操作,变成了刷新堆的操作,由于堆的插入操作位logn,查询时间为常数,因此在边稀疏的情况下,其复杂度与Kruscal接近。这题刚开始老是WA,想了很久,不知道错在哪里,后来发现时因此不能直接去堆中的最小路径,因为...
分类:
编程语言 时间:
2015-04-13 00:10:33
阅读次数:
190
Dijkstra(迪杰斯特拉)算法,用于计算一个节点到其他所有节点的最短路径。要注意的是这个算法中路径的权值不能有负边,如果有负边的话要运用bellman
ford算法。
学习了一下dijkstra算法,感觉跟最小生成树的Prim算法有点类似。感觉dijkstra也是一个贪心的策略,用集合S表示的是已经找出最小路径的点,用dis[]来表示每个点当前距离源点的最短距离。再用一个数组来存储两点之...
分类:
编程语言 时间:
2015-04-12 09:25:20
阅读次数:
180
Air RaidTime Limit: 1 SecMemory Limit: 256 MB题目连接http://acm.hdu.edu.cn/showproblem.php?pid=1151DescriptionConsider a town where all the streets are on...
分类:
其他好文 时间:
2015-04-10 16:56:20
阅读次数:
193
1. HDU 1151 Air Raid题目描述有点长,就是说一个有向无环图,最少需要走几次能把整张图上的边遍历。典型的最小路径覆盖,答案就是顶点数-最大匹配数#include #include #include #include #include #include #include #includ...
分类:
其他好文 时间:
2015-04-09 00:58:37
阅读次数:
154
感觉这是一系列的动态规划的算法,正好也将动态规划的算法进行一个总结:
算法一:
带权重的最小路径的问题
Given a m x n grid
filled with non-negative numbers, find a path from top left to bottom right which minimizes the
sum of all numbers along i...
分类:
编程语言 时间:
2015-04-08 18:03:40
阅读次数:
167
题目大意:
在一个N*M(N <= 24,M <= 24)的图中,有很多垃圾, 清理垃圾的机器人从左上角开始清理。已
知机器人只能向右或是向下清理垃圾,在清理完一个地方的垃圾后可以继续向右或是向下去清理
其他垃圾。最终运行到(N,M)的位置终止。问:最少需要多少个机器人,能清理完所有的垃圾。
思路:
图中没有给N和M的大小,只是给出了垃圾的位置。输入用0 0表示一组数据输入结束。建一个结构
体来存储垃圾的坐标值。现在来建一个二分图,图的两边就是垃圾的节点,遍历原图,如果垃圾j在
垃圾i的右下角,就将(i,...
分类:
其他好文 时间:
2015-04-07 21:41:53
阅读次数:
146
题目大意:
有Q个地点,告诉你Q个地点之间的相互距离(从i地点赶到j地点需要的时间)。有M项任务,
给你M项任务所在的地点block、开始时间start和任务完成需要时间time。一个工人只有在
他准备完成的下一项任务开始之前完成手上的任务,然后在下一项任务开始之前赶到下一项
任务的地点,才能完成这两项任务。问:最少需要多少个工人来完成这M项任务。
思路:
先用Floyd算出Q个地点之间相互最短距离。然后建立一个二分图,每边都是M项任务,如果
能在任务j完成之前将i任务完成并能赶到任务j的地点,就建立一条...
分类:
其他好文 时间:
2015-04-07 19:44:05
阅读次数:
188
题目大意:
给你N个地点,M条有向边,已知构成的图是有向无环图。现在要在地点上放机器人通过M
条边来遍历N个地点,问:最少需要多少个机器人可以遍历N个地点。
思路:
这是一道求最小路径覆盖的题目。和一般最小路径覆盖的题目不一样的地方是:这里的点可
以重复遍历。也就是可以有两个及以上的机器人经过同一个点。 那么,先建立一个二分图,
两边都为N个地点。然后在原图的基础上,用Floyd求一次传递闭包,也就是如果点i可以到达
点j,而点j可以到达点k,那么可以当做点i可以直接跳过点j而到达点k,就可以建立一条有向...
分类:
其他好文 时间:
2015-04-07 19:40:57
阅读次数:
121