随笔分类 -  图论

摘要:一、题面 Drainage Ditches 二、分析 网络流的裸题。 1 Edmonds-Karp算法 求解网络流其实就是一个不断找增广路,然后每次找到一条增广路后更新残余网络的一个过程。 EK算法主要就是用bfs去找增广路,然后不断更新残余网络得到最终答案。 2 Dinic算法 对于Ford-Fu 阅读全文
posted @ 2019-08-08 15:02 Dybala21 阅读(191) 评论(0) 推荐(0)
摘要:一、题目 POJ1797 二、分析 题意就是让你找到从1到n的一条路,由于边的最大称重限制,你需要确定限制的最小值,也就是能运输的最大值。 可以结合最小生成树想,利用并查集,然后不断更新答案即可,需要注意的是题意是1到n走到就可以了,并不需要走到每个点,所以不是完整的最大生成树,所以当1与n共父节点 阅读全文
posted @ 2019-06-01 14:08 Dybala21 阅读(139) 评论(0) 推荐(0)
摘要:一、题目 Frogger 二、分析 题意关键点就是那个青蛙距离。就是所有1到2的点的路径中,每条路径都可以确定一个最大值,这个最大值就是青蛙要跳的青蛙距离,然后要求这个青蛙距离最小值。 其实就是最短路的变形,用dijkstra,原先求最短路的时候是每次确定当前最小距离的点,那么,这题只需要每次确定一 阅读全文
posted @ 2019-06-01 12:07 Dybala21 阅读(104) 评论(0) 推荐(0)
摘要:一、题目 POJ2387 二、分析 Bellman-Ford算法 该算法是求单源最短路的,核心思想就是不断去更新到起点的最短距离,更新的前提是没有负边。如果有负边需要手动控制循环次数。 Dijkstra算法 同样是单源最短路,它的核心是 (1) 找到最短距离已经确定的顶点,再从该顶点出发,更新与它相 阅读全文
posted @ 2019-05-31 19:08 Dybala21 阅读(119) 评论(0) 推荐(0)
摘要:一、题面 here 二、分析 这题刚开始没读懂题意,后来明白了,原来就是一个数连通块里点数的问题。首先在建图的时候,只考虑红色路径上的点。为什么呢,因为为了不走红色的快,那么我们可以反着想只走红色的路径,这样把所有的可能数再减去只走红色路径的数就是最终的答案了。这里要注意的是,如果连通块里只有一个点 阅读全文
posted @ 2019-03-26 21:47 Dybala21 阅读(177) 评论(0) 推荐(0)
摘要:一、题面 POJ3268 二、分析 该题的意思就是给定了一个由每个节点代表农场的有向图,选定一个农场X办party,其余农场的都要去,每个农场的cow都走最短路,走的时间最久的cow耗时多少。 了解题意后,最开始想的是直接用floyd,但是复杂度已经到10的9次方了。这题比较特殊的一点就是无论是回来 阅读全文
posted @ 2019-02-01 17:30 Dybala21 阅读(137) 评论(1) 推荐(0)