ACM_图论
文章平均质量分 79
亚N程
这个作者很懒,什么都没留下…
展开
-
UVa:10806 Dijkstra, Dijkstra.
求一条从s到t的回路,要求每条边只走一次,使总和最小。最小费用最大流。将每条边的流量设为1,答案就是最大流为2时的最小费用。 求最短路的时候用了SPFA。 #include #include #include #include #include #include #include #define MAXN 105 #define INF 2139062143 #define原创 2014-01-30 17:15:59 · 865 阅读 · 0 评论 -
UVa:11383 Golden Tiger Claw(KM算法)
利用KM算法中的l(x)+l(y)>=w(x,y)。算法结束后所有标顶之和是最小的。即所求答案。原创 2014-02-28 19:52:20 · 870 阅读 · 0 评论 -
UPC:2218 Thrall’s Dream(BFS)
题意:给一个有向图,问任意两点之间能否联通。 思路:由于数据量不大,可以枚举每个点直接bfs遍历整个图,但这个过程有很多重复,可以加一些优化。比如说在当前枚举点x,它可达点y。如果y点之前已经枚举过那么就不需要再遍历y了,直接将y可达的点设为x也可达就行了。 #include #include #include #include #include #include using na原创 2015-04-06 22:25:23 · 544 阅读 · 0 评论 -
HDU:4255 A Famous Grid(构造+BFS)
题意:给一个表,问两个位置之间的最短距离是多少,其中素数位置不能经过。 思路:坐标范围是10000,也就是说这个表大约是100*100,当然题目中表是无穷大的,由于有些位置不能走实际上可能会大于100*100。这样构造一个大点的表判断一下素数位置,每次查询直接bfs求最短路即可。 #include #include #include #include #include #includ原创 2015-04-18 14:31:44 · 979 阅读 · 0 评论 -
UVa:10888 Warehouse
问题可以转化为二分图匹配来做。利用BFS求得每个X到每个B的最短距离,为权值。 然后用KM算法求最小权。需要用求最大权的算法,权值取反。 不存在无解的情况。 #include #include #include #include #include #include #include #include #include #define ll long lon原创 2014-02-27 21:45:25 · 984 阅读 · 0 评论 -
UVa:11419 SAM I AM
行为左边点集,列为右边点集,障碍为边,这样消灭所有障碍即每条边都连着一个点。这样选最少的点即可。这样问题就是求解最小点覆盖集,在二分图中等价于二分最大匹配。但是这里还要求出最小点覆盖集。方法是,在求出二分图最大匹配后,寻找左边点中的未盖点进行拓展匈牙利树,将所有遍历到的点标记。这样左边中为标记的,右边的标记的点即为最小点覆盖集。 #include #include #include原创 2014-03-01 11:41:05 · 727 阅读 · 0 评论 -
HDU:4738 Caocao's Bridges
无向图求桥。 虽然是模版题但是有几个trick。 1,图可能不连通,这样答案输出0 2,有重边,重边肯定不是桥 3,如果最小值是0,那么应该输出1,因为至少要派一个人去炸桥。 #include #include #include #include #include #include #include #include #define ll long lon原创 2014-02-13 19:29:12 · 636 阅读 · 0 评论 -
UVa:10054 The Necklace
大一的时候写这道题被卡到死,最终AC跑了1s多,不知为何。 今天重写,还是WA了好多次。 注意一些地方,要判断图是否联通,编号1——50不一定全部都出现,也不一定连续出现。 这样,并查集+欧拉回路即可。 #include #include #include #include #include #include #define ll long long #defin原创 2014-02-10 17:57:19 · 630 阅读 · 0 评论 -
UVa:10047 The Monocycle
简单bfs。 将状态映射成hash来判重。 #include #include #include #include #include #include #define ll long long #define INF 200000000 #define MOD 20071027 #define MAXN 1000005 using namespace std;原创 2014-02-10 17:02:12 · 573 阅读 · 0 评论 -
UVa:11624 Fire!
多源bfs。注意J一开始就在边界的特殊情况。 #include #include #include #include #include #include #define ll long long #define INF 200000000 #define MOD 1000007 #define MAXN 4000*1005 using namespace std;原创 2014-02-09 15:23:38 · 547 阅读 · 0 评论 -
UVa:753 A Plug for UNIX
最大流。 建立源点为0,汇点为1。将已有插头与0相连,每种电器用到的插头与汇点相连。转换器与插头之间是INF。 #include #include #include #include #include #include #include #include #include #define ll long long #define INF 213906原创 2014-02-20 21:37:07 · 705 阅读 · 0 评论 -
UVa:10330 Power Transmission
最大流。每个结点也给了容量,这样要求每条边的都要比结点容量小或相等。 用邻接表实现的,注意要记录反向边在邻接表中的位置,同时在EK算法中也要记录父亲结点中边的位置。 #include #include #include #include #include #include #include #include #define ll long long #d原创 2014-02-03 15:24:22 · 648 阅读 · 0 评论 -
UVa:1411 Ants(KM算法)
由黑白两色的结点很容易想到二分图匹配,但是线段相交这里很难处理。这里有一个性质,即不相交的线段和一定小于相交的线段和。由于一定存在解,那么这样线段和最小的情况一定是不相交的。这样由KM算法求最小权即可。原创 2014-02-28 20:38:21 · 942 阅读 · 0 评论