随笔分类 -  Dinic

摘要:题目传送门 网络流,求最小割。 设tot为所有盈利的和,即所有人(不花钱)雇佣。 对于S->i建一条容量为c[i]的边,i->j建一条S[i][j]*2的边,之所以这样建是因为如果不选这个人还会亏S[i][j]。 对于i->T建一条容量为∑S[i][j]的边。 最小割=最大流,跑Dinic code 阅读全文
posted @ 2018-03-16 15:03 Cptraser 阅读(165) 评论(0) 推荐(0)
摘要:题目传送门 经过长时间的旅行,很长时间没写过博客了,这次把上次WA的题目过了。 由于每次蜥蜴从石柱上跳下时,石柱的高度会-1,可以看做占了一格的流量。 建图: 1.建超级源和超级汇,设超级源连到每只蜥蜴的边容量为1,每个可以跳到外面的点连到超级汇的边的容量为maxlongint。 2.对于每个点建一 阅读全文
posted @ 2018-02-26 16:08 Cptraser 阅读(141) 评论(0) 推荐(0)
摘要:题目传送门 由题意得是最小割问题,又由最大流最小割定理可得只需要求无向图的最大流即可。 建双向边,跑Dinic,EK会超时。 注意在DFS时要加"if(!res)dist[now]=0;"这句话,不然会超时。 这句话因为下次DFSnow这个点时得到的最小流量为0,所以就没必要DFS下去,一个剪枝。 阅读全文
posted @ 2018-01-14 20:21 Cptraser 阅读(159) 评论(0) 推荐(0)
摘要:例题传送门 Dinic算法是网络流最大流的优化算法之一,每一步对原图进行分层,然后用DFS求增广路。时间复杂度是O(n^2*m),Dinic算法最多被分为n个阶段,每个阶段包括建层次网络和寻找增广路两部分。 Dinic算法是网络流最大流的优化算法之一,每一步对原图进行分层,然后用DFS求增广路。时间 阅读全文
posted @ 2018-01-14 14:41 Cptraser 阅读(215) 评论(1) 推荐(0)