随笔分类 - 图论
摘要:用网络流解题,其实就是把问题抽象成水流去思考。 1,sap算法比dinic算法求最大流快很多,当点数超过1000时,需采用sap算法。 2,建双向边时,只需把反向边的的容量0改为c 题目一:有F种食物D种饮料,每种食物或饮料只能分配给一头牛。最多能有多少头牛可以同时得到喜欢的食物和饮料。 建图 :
阅读全文
摘要:无源汇有上下界限制可行流(循环流) 即每条边的流量限制为[L,R],判断有没有满足整个网络的可行流。 看看以前学的网络流,实际上它的流量限制为[0,C],现在无非多了一个下限的限制。 网络流的一个重要性质:除了源汇点的点,入流==出流。 本来点是不能存储水的,我们先不妨假设每条边都满足下限,对于某一
阅读全文
摘要:显然是最小割的经典应用“二者选一” 这里有一个用其他算法不好解决的地方,选择了v,则必须选择所有的u,而对于这个直接建好v指向u的边,容量设为正无穷即可。(即该边不可被割) 源点指向某个知识点,边容量为收益大小,这个点再指向汇点,边容量为损失大小。 对于每个点,要么选(切断与汇点的联系),要么不选(
阅读全文
摘要:Dinic算法: while(能够分层) { 分层; dfs增广; } 分层:即源点为0层,能一步到达的点为第一层,二步到达的点为第二层......(边容量为0即为不可达)。 dfs增广:按照层次从源点搜索一条可行流到汇点,减去可行流得到残余网络,然后回溯,接着在残余网络上寻找可行流,直到回溯到0层
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1043 八数码八境界: https://www.cnblogs.com/zufezzt/p/5659276.html 借用了MAP哈希,发现只能过hdu(249ms),poj一直TLE。 还是先上个代码吧,以后再改
阅读全文
摘要:https://www.nowcoder.com/acm/contest/69/D 即找一条墙壁将起点和终点隔绝,使代价最小。因为可以利用原有墙壁(即原来有墙壁的地方代价为0,还有不能建墙壁的位置代价就为inf) 我是从上边和右边开始寻找
阅读全文
摘要:https://www.nowcoder.com/acm/contest/68/B 题目描述 求起点到终点的最少步数,这种是典型的BFS题,O(n)的时间复杂度。 条件:图中会有一把钥匙,一扇门,门在没有钥匙时无法通行。 做两次BFS,从起点开始,从有钥匙的地方开始。利用标记写一个BFS就可以了。
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 易错点: 1)当起点等于终点时,hash会出错 2)无向图 3)两个点之间不只一条路径(取最短就好) 4)没有通路的情况(输出-1) 利用map哈希字符串,本题时限要求不高,Dijkstra就可以
阅读全文
摘要:题目链接 : http://poj.org/problem?id=1679 1,图可能不是全部联通的,输出0(我的模板里没有这个判断) 2,首先做一次k..最小生成树算法,记录选取的边,然后枚举这些边,看在不考虑某条边(continue)的情况下是否还能得出和原来一样的最小cost(同样要考虑联通)
阅读全文
摘要:Description 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。 现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。 有人用两种说法对这N个动物所构成的食物链关系进行描述: 第一种说法是"1 X Y",表
阅读全文

浙公网安备 33010602011771号