随笔分类 - 图论-网络流
摘要:"题目链接" 环形均分纸牌,既然是网络流23题的那就用网络流做把。 套路拆点。 供需平衡。 源点向大于平均数的点的入点连流量为这个数减去平均数的差,费用为0的边,表示需要移走这么多。 小于平均数的点的出点向汇点连流量为平均数减去这个数的差,费用为0的边,表示可以容纳这么多。 然后相邻入点两两连边,入
阅读全文
摘要:"题目链接" 首先有$n$条路径,每条路径就是一个点,然后尽量合并,答案就是点数 合并数。 套路拆点,源连入,出连汇,原有的边入出连。 最大流就是最大合并数,第一问解决。 然后怎么输出方案? 我是找到所有路径中的最后一个点,然后根据残量网络一直往前跳,$dfs$倒序输出。 cpp include i
阅读全文
摘要:"题目链接" 用最多经过$k$条经过$0$的路径覆盖所有点。 定义$ds[i][j]$表示从$i$到$j$不经过大于$max(i,j)$的点的最短路,显然可以用弗洛伊德求。 然后每个点拆成入出点,连边 源点向$0$的入点连流量k费用0的边,表示最多经过$0$K次 源点向其余每个点的入点连流量1费用0
阅读全文
摘要:"题目链接" 第一问就是简单的最大流。 第二问,保留第一问求完最大流的残量网络。 然后新建一个源点,向原源点连一条流量为k,费用为0的边。 然后所有边重新连一起(原来的边保留),费用为题目所给,最小费用即为第二问答案,很好理解。 cpp include include include define
阅读全文
摘要:"题目链接" sb错误调了3hour+。。 bfs预处理出每个$.$到每个$D$的最短距离。 二分时间$t$,把每个$D$拆成$t$个点,这$t$个点两两连边,流量$INF$表示$t$个时刻都可以从这个$D$出。 然后枚举所有$.$,再枚举所有$D$,如果距离$dis$小于$t$,就从这个$.$向这
阅读全文
摘要:"题目链接" 感觉跟餐巾计划问题有点像。费用流。 决定每天买不买不太好搞,不如先把所有东西都买进来,再卖掉不必要的。 拆点,每个点拆成$x,y$。 源点向每个点的$x$连费用为当天的价格,流量为1的边。 每个点的$y$向汇点连费用为0,流量为1的边。 每个点$x$向$y$连流量为1,费用为0的边。
阅读全文
摘要:"题目链接" 首先是可以$O(n^2)$枚举出所有符合要求的点对的,然后考虑建图。 还是拆点把每个点拆成入点和出点,源点连入点,出点连汇点,流量都是1,费用都是0。 然后对于没对符合要求的$(x,y)$,连接$(x_{in},y_{out}),(y_{in},x_{out})$,费用均为$x+y$,
阅读全文
摘要:"题目链接" 回路限制经典题。 每个点拆成入点和出点,源点连每个点的出点,流量1,费用0,每个点出点连汇点,流量1,费用0,入点和出点之间没有边。 也就是说每个点必须靠其他点流来的流量来流入汇点,同时自己的流量流出去,这时候就会形成环,只要把所有流量流满,就必定是题目要求的情形。 所以每个点向前后左
阅读全文
摘要:"题目链接" 每层每个位置向下一层这个位置连边,流量为下一层这个位置的$f$,源点向第一层连,流量第一层每个位置的费用,最后一层向汇点连,流量$INF$。 这样就得到了$P Q$条链,不考虑$D$的限制的话求最小割就是答案。 现在加入限制。~~记结论吧,我也不知道什么原理~~ 每个位置从$i=D+1
阅读全文
摘要:"题目链接" 看到这题我想到了以前做过的一题,名字记不清了,反正里面有“矩阵”二字,然后是道二分图匹配的题。 经典的行列连边网络流。 第$i$行和第$j$列连边,费用为$b[i][j] a[i][j]\times mid$,源点连行,列连汇点,跑最小费用最大流得到的最小费用取负,这个值就是最大的$\
阅读全文
摘要:"题目链接" 简单网络流。 源点向蜥蜴连流量为$1$的边。 能跳出去的点向汇点连流量为$INF$的边。 把每个点拆成$2$个点,$O(n^4)$枚举两两点,如果距离小于等于$d$,就互连流量为$INF$的边。 然后跑$dinic$就行了。 cpp include include include in
阅读全文
摘要:"题目链接" 最大流裸题,没什么好说吧,恰好点数多,考验网络流的效率,正好练$Dinic$。 cpp include include include define INF 2147483647 using namespace std; const int MAXN = 1000010; const
阅读全文
摘要:"题目链接" 6/23 这是网络流23题里我第一个没看题解自己写出来一遍过的。。 这题应该是最简单的模型了吧。 从源点向每个类型连一条流量为这个类型要的题数,再从每个类型向可以属于这个类型的所有试题连一条流量为1的边,最后从所有试题向汇点连一条流量为1的边。 跑最大流就行。判断边有没有流量。 cpp
阅读全文
摘要:"题目链接" 最大权闭合图模型, "参考" 具体做法是从源点向每个实验连一条流量为这个实验的报酬的边,从每个实验向这个实验需要的所有器材各连一条流量为$INF$的边,再从每个器材向汇点连一条流量为这个器材的费用的边。 然后跑出最小割(即最大流),用所有的报酬和减去这个最小割就行。 不知道为什么我的$
阅读全文
摘要:"题目链接" 这不是裸的二分图匹配吗? 而且匈牙利算法自带记录方案。。 但既然是网络流24题,那就用网络流来做吧。 具体就是从源点向左边每个点连一条流量为1的边,两边正常连边,流量都是一,右边所有点向汇点连一条流量为1的边,然后跑$Dinic$就行了。 怎么记录方案?枚举左边所有点连的所有边,如果剩
阅读全文
摘要:"题目链接" 突然发现Dinic很好写诶。。 第一次数组开小了,玄学$WA$,~~what?数据范围描述有误?~~ 分层图,每天为一层。 把上一天的每个空间站向这一天连一条流量为inf的边,表示可以原地不动。 把一个周期内上一天上一个和这一天这一个连一条流量为这艘太空船的容量的边,表示去下一站。 然
阅读全文
摘要:"题目链接" 我做的网络流24题里的第一题。。 想是不可能想到的,只能看题解。 cpp 首先,我们拆点,将一天拆成晚上和早上,每天晚上会受到脏餐巾(来源:当天早上用完的餐巾,在这道题中可理解为从原点获得),每天早上又有干净的餐巾(来源:购买、快洗店、慢洗店)。 1.从原点向每一天晚上连一条流量为当天
阅读全文


浙公网安备 33010602011771号