摘要: "传送门" 思维题吧,神奇的模型转化,除了模型转化别的都是板子 最最最暴力的想法当然是一个一个去求lca啊,然后恭喜你获得了0分的好成绩 其实可以考虑另一种暴力,dep(lca(i,z))也可以看做是i点和z点到根节点路径上公共的路径的长度,那么我们就可以得到一个做法,将z到根的路径上每个节点都加上 阅读全文
posted @ 2019-01-05 16:56 蒟蒻--lichenxi 阅读(213) 评论(0) 推荐(0) 编辑
摘要: "传送门" 提示:如果你想看懂我接下来说的话,你需要对网络流有一定的理解。 我们现在已经会有源汇上下界最大流了,上下界一类问题的建模已经会了。那么如何解决最小流的问题。 最小流一定是0吗:因为有下界的存在,最小流就不一定是0. 参考有源汇上下界最大流的做法,我们同样可以建一个超级源点和超级汇点,连一 阅读全文
posted @ 2019-01-05 14:39 蒟蒻--lichenxi 阅读(539) 评论(0) 推荐(0) 编辑
摘要: "传送门" 有源汇上下界最大流,建模很经典,将每行和每列看做一个点,然后去按照有源汇上下界建图就行了,因为这个题,我又发现了自己网络流板子里的一个错误写法,bfs的时候得增广完再退出,改了我半个小时。。。 c++ include include include include include usi 阅读全文
posted @ 2019-01-05 14:07 蒟蒻--lichenxi 阅读(447) 评论(0) 推荐(0) 编辑
摘要: "传送门" 和上一题差不多,每行和每列分别看做一个点,障碍点坐标的行和列就不建边,再按照有源汇上下界建图就好了,唯一的区别就是这个题求的是最小流 这个题的数据好水呢,建错图也能A呢 c++ include include include include using namespace std; de 阅读全文
posted @ 2019-01-05 14:04 蒟蒻--lichenxi 阅读(97) 评论(0) 推荐(0) 编辑
摘要: "传送门" 这里详(jian)细(dan)解释一下最小费用最大流。 最大流会不会? 会! 最短路会不会? 会! 那你不就会这个题怎么写了。。。 算了,最小费用最大流是要求在最小费用的前提下求最大流,那么我们显然要优先考虑最小费用吗,想想我们求最大流的过程。 我们就可以将费用定成边权,将bfs求增广路 阅读全文
posted @ 2019-01-05 10:17 蒟蒻--lichenxi 阅读(121) 评论(0) 推荐(0) 编辑
摘要: "传送门" 最小费用最大流,又是一道思维题,我又没想出建图,问题想对了,就是不会解决,建图大概就是对于每个工人每个时间段建个点,只要想到将$n$个工人分成$(n m)$个点,剩下的就简单了,zkw费用流在这题表现不佳 c++ include include include using namespa 阅读全文
posted @ 2019-01-05 10:02 蒟蒻--lichenxi 阅读(118) 评论(0) 推荐(0) 编辑
摘要: "传送门" 最小费用最大流,被我秒了的水题,由于每个点也只能经过一次,所以拆点处理就好了,zkw费用流又被EK踩了。。。 c++ include include include using namespace std; inline void read(int &x) { char ch; bool 阅读全文
posted @ 2019-01-05 10:00 蒟蒻--lichenxi 阅读(121) 评论(0) 推荐(0) 编辑
摘要: "传送门" 最小费用最大流,这个题是修车的加强版,暴力建图是60分,所以这个题需要动态加边,动态加边的思路很显然,最先只把厨师做第一道菜加边,之后每做完一道菜再加$n$条边就好啦,此题有及其恶(稀)心(疏)的图,zkw费用流会被卡成80分,所以只能写EK c++ include include in 阅读全文
posted @ 2019-01-05 09:57 蒟蒻--lichenxi 阅读(135) 评论(0) 推荐(0) 编辑
摘要: "传送门" 最小费用最大流,这么垃圾的题我想的居然挂了,正解就差一点点,我就假装自己秒了这个题吧,思路就是先跑一边最大流,然后在原图的残量网络中加一些边,就是对于原本的每条边$(x,y)$连一条容量为inf,费用为$cost_{(x,y)}$的边,最后多建一个超级源点,向原源点连一条容量为k,费用为 阅读全文
posted @ 2019-01-05 09:56 蒟蒻--lichenxi 阅读(114) 评论(0) 推荐(0) 编辑
摘要: "传送门" 最小费用最大流,这个就真的是水题了,我看错题了,建了一个比正解复杂好几倍的图。。。我以为每个月有多个产品,还以为仓库可以无限时的存产品。。。然后建出来的图就巨复杂。。。 c++ include include include include using namespace std; de 阅读全文
posted @ 2019-01-05 09:53 蒟蒻--lichenxi 阅读(185) 评论(0) 推荐(0) 编辑
摘要: "传送门" 最小割,这也是个经典题了,当初学最小割时没学会,这次算是理解了,首先二分图染色,将整个图分成黑色点和白色点,由于相邻的格子不能同时选,一个黑点一定对应四个白点,也就是我们只能选择这个黑点或者四个白点,就再建出一个超级源点和超级汇点,将每个黑点与超级源点连边,容量为点权,每个白点与汇点连边 阅读全文
posted @ 2019-01-05 09:51 蒟蒻--lichenxi 阅读(173) 评论(0) 推荐(0) 编辑
摘要: "传送门" 最小割,最大权闭合子图,基本建图方法就是正权点与源点连边,负权点与汇点连边,中间容量都是inf就好了,对于这个题的利益,我们可以将所有的边变成点,然后就建成了一个二分图,之后就好解决了 c++ include include include include using namespace 阅读全文
posted @ 2019-01-05 09:49 蒟蒻--lichenxi 阅读(96) 评论(0) 推荐(0) 编辑
摘要: "传送门" 最小割,一眼最小割,这个甚至不需要建什么模型,直接按它给的建就好了,最小割=最大流,跑个最大流就行了,注意:图是无向图 c++ include include include include using namespace std; define min(a,b) (aq; void r 阅读全文
posted @ 2019-01-05 09:46 蒟蒻--lichenxi 阅读(118) 评论(0) 推荐(0) 编辑
摘要: "传送门" 这是个最大费用最大流,拆点连边就好啦,最大费用最大流 c++ include include include include using namespace std; void read(int &x) { char ch; bool ok; for(ok=0,ch=getchar(); 阅读全文
posted @ 2019-01-05 09:41 蒟蒻--lichenxi 阅读(129) 评论(0) 推荐(0) 编辑
摘要: "传送门" 一道建模稍微有难度的网络流,首先你需要考虑到拆点,确实有点难度,你需要把一天拆成干净餐巾和肮脏餐巾,因为脏餐巾是可以转化为干净餐巾的,你需要做到这个过程,所以你需要拆点,其次难想到的应该是如何解决快洗部和慢洗部每次只能洗一件并且需要洗多天,如何安排哪天的餐巾去洗就是个问题,所以可以考虑每 阅读全文
posted @ 2019-01-05 09:36 蒟蒻--lichenxi 阅读(149) 评论(0) 推荐(0) 编辑