网络流,费用流
tiany7
人一我十,人十我万
展开
-
洛谷 P3410 拍照(最大流 + 建图)
2020.7.23开干吧。这道题问的是一群人要和另一群人合影,每个客人都有必须在场的人全部在场才能在场,每个客人给的有收入,但是邀请也需要支出,问最大收入?我觉得可以总结为一类问题,就是有先决条件的网络流问题。看到费用和支出我本来以为是费用流问题,但是想着想着发现这道题似乎和费用流没什么关系。费用流的决策并不符合这里的题意。本来是想客人和主人连边,起点到客人,汇点到主人之间连上容量为客人需要主人陪的数量的边,跑一下dinic再遍历前向星检测就行了。然而开幕雷击发生了,这种做法只有60,怎么改也没能更高原创 2020-07-23 11:49:26 · 228 阅读 · 0 评论 -
洛谷 P6061 P6061 [加油武汉]疫情调查(带权二分图匹配 + 费用流)
2020.7.17今天一上午被几个新闻弄得心情非常不好。又是有人挑起来对留学生的排挤和歧视。平时岁月静好的时候没借口挤兑,现在有机会了赶紧来踹一脚,人内心最深处的丑恶本性被暴露得一览无遗。天天拿我们回不回来的事情做文章。且不说大部分人是不是回来了,出来学习也是花的家里的钱吧,颇有一种家里盘算着让在外打工的姐姐攒钱给弟弟买房的感觉。前一阵子我们回国的时候不少人以自己在家里蹲了两个月为荣,对我们嗤之以鼻。真正在前线拼命的医生都说我主张孩子们快回来。我一位在1月自己出资捐回去了几百套防护装备的同学看到微博知乎这原创 2020-07-17 12:45:45 · 260 阅读 · 0 评论 -
洛谷 P2071 座位安排 (最大流 + 建图)
2020.7.15今天先开个小差,这图书馆接近零下的气温给爷冻傻了,这还咋写题?马上回去了,练一练网络和tarjan吧。这道题很简单,问有2n个人,n排座位,每个人都有喜欢的两个座位,最多能安置多少个人?这不就是二分图嘛,切了它!首先看到一排有两个座位,换句话说这个点具有2对1的属性,要素察觉,我们用拆点处理一下,每一排座位分为出边和入边两个流量,入到出流量为2,这样就可以一一对应了,然后跑一边最大流就ok了。好消息是AC了,悲剧是我发现我好像想多了,我把拆点这个步骤去掉好像也能AC,哭了,才想起来好像原创 2020-07-16 11:12:08 · 323 阅读 · 0 评论 -
洛谷P3931 SAC E#1 - 一道难题 Tree (最大流/最小割)
2020.7.11今天晚上还有比赛,打完这场就不打了,从五月到今天天天刷题也太自闭了,一定得出去玩一阵子。这道题貌似并不难,带权的有根树,问树根到叶节点不连通的最小代价(要素察觉),那么不就是把树根连源,叶子连汇然后跑一边最大流不就行了??交上去wa到只剩20,后来注意到给出的边的顺序不一定是树里面的顺序,所以肯定需要处理一下才行。我说我今天写这道题的时候怎么有种树链剖分的感觉呢??处理手法直接从树剖那里照搬过来,叶子节点的size大小肯定为1,在第一次dfs的时候连边,连完边顺便检查一下size是不是原创 2020-07-11 11:22:14 · 197 阅读 · 0 评论 -
POJ 1087 A Plug For Unix (最大流/匹配)
2020.7.10终于把这道题A了,我早上起来来到图书馆就看见这一道题,去年想过但没敢写,今天学了网络流就来搞一搞。一看这题,傻X题,切了它。拍了个板子,然后开始建模,这题说每个设备都有自己适配的插头,然后又有一些(无限个)适配特定两个插头的转换插头,又有能插若干个型号插头的插座,每种有一个,问最多能有多少个设备插进去。思路很白板啊,就是源点连设备,设备连插头,插头连插座就完事儿了。一发过样例,一发就wa了,然后自闭了两个小时,感觉程序怎么调样例都是对的,然而怎么调都过不去。后来跟群内大佬讨论了下思路,原创 2020-07-10 11:53:32 · 191 阅读 · 0 评论 -
洛谷 P2055 [ZJOI2009]假期的宿舍(二分图+最大流)
2020.7.9这一道题花了一个小时的时间,花了好久debug还是wa,最后看题解解释没看代码才意识到自己把边连反了,所以才会wa。之前在做拆点那道题,要分两层,我上去天真地码了个dinic连边,一看样例过了就开心地提交了,结果wa了7个点,后来突然想起来郭神的ppt里有这个问题的详解,看了看才想起来要分两层然后拆点。因为要一一对应才行,写完就ac了,其实我感觉这也没有省选难度吧,来看一道省选题。坐在图书馆对面的两个改卷子的老师一直在交头接耳,这在图书馆的学习区是大忌,看了是中学的老师在批改学生的作业,原创 2020-07-09 11:43:38 · 166 阅读 · 0 评论 -
洛谷P2756 飞行员的配对方案问题(二分图 + 最大流)
2020.7.8今天弟弟该考完了,可以带着去玩一下。马上图书馆就要下班了,机智的我今天给自己放个假提前回去,不傻等了hhh这道题问飞行员的配对方案有几种,并且要求输出其中一种。那就很显然了,网络流搞二分图呗。但是问题是,如果这是让输出方案数那就很简单了,但是这是让输出方案,那么就有点难度了。我先拍了个dinic板子放上去,然后建图,跑了一下最大流的大小对上了,应该就没问题了,现在问题是怎么输出方案数。那么就首先想到在增广路这个地方下手。因为二分图拆掉超级源点和汇点其实至多经过两个点,首先想到如果u和v原创 2020-07-08 11:37:43 · 172 阅读 · 0 评论 -
洛谷P3386 二分图模板(dinic代替匈牙利算法)
2020.7.7今天没看题解直接把这道题水过去了。原来和我想的一样。19年我写匈牙利调了一晚上没调出来,之后见到二分匹配就哆嗦。然后今天我的想法是是不是找一个超级源点和汇做增广路就行了,果然是,标号法是我前几天写一个noi的题的时候学的hhhh。连一下边,连源和汇,像分层图那样就行了。一发苟过去了hhh代码:#include <bits/stdc++.h>using namespace std;#define limit (100000 + 5)//防止溢出#define INF原创 2020-07-07 14:55:18 · 142 阅读 · 0 评论 -
最大流模板--dinic算法
sorry我上次传的是费用流,慢的一批,这次更正下。#include <bits/stdc++.h>using namespace std;#define limit (100000 + 5)//防止溢出#define INF 0x3f3f3f3f#define inf 0x3f3f3f3f3f#define lowbit(i) i&(-i)//一步两步#define EPS 1e-6#define FASTIO ios::sync_with_stdio(false);原创 2020-07-07 14:07:39 · 228 阅读 · 0 评论 -
POJ1273 Drainage Ditches(最大流二次修改版)
这次没看答案,把去年的代码重新推翻再写了下,确实感觉到很多可以优化的地方,然后这个算法没我想象中的那么难,网络流24题可以安排上了,两个版本版本1:这个版本是用邻接矩阵,但是后来发现完全可以用前向星#include <bits/stdc++.h>using namespace std;#define limit (1000 + 5)//防止溢出#define INF 0x3f3f3f3f#define inf 0x3f3f3f3f3f#define lowbit(i) i&原创 2020-07-03 14:57:11 · 201 阅读 · 1 评论 -
洛谷P3381: 最小费用最大流模板(spfa + dinic)
2020.7.3费用流模板,终于弄明白了。因为去年写的第一篇就是网络流的模板,所以感觉要弄懂这个其实门槛不算很高,增广路和添加反向边去年第一次听的时候感觉很高端,但是其实不难,去年看不懂一个是因为我太菜,另一个是因为郭神的代码太高端了吧。学习其实有时候往往不是一个线性的增长,前期投入大量时间和精力却换来了未能出线的结果,后期知识体系完善了学习效率往往能实现飞跃。比如溯祖,去年第一次在Edmond Karp算法里接触到的时候怎么捋不顺,但是学了树链剖分和ac自动机之后这些都是基操,还有链式前向星,我在过去原创 2020-07-03 11:24:52 · 448 阅读 · 1 评论