图论——网络流
hhz6830975
这个作者很懒,什么都没留下…
展开
-
洛谷 P3381 【模板】最小费用最大流
一个网络图虽然最大流确定,但达到最大流的方案并不唯一。如果对于每条边,都加一个费用f,表示这条边流过单位流量的代价,求达到最大流时的最小费用,这就是最小费用最大流问题。解决方法:EK费用流或zwk费用流。这里只讲EK费用流。采用贪心的思想。我们每次增广时都选择费用最小的一条。这样,因为最大流是确定的,因此最后结束时得到的一定是最大流;因为采用贪心的方法,所以费用一定最小。具体操作:建图...原创 2018-03-16 14:16:52 · 371 阅读 · 0 评论 -
洛谷 P1402 酒店之王(dinic模板)
将1个人拆成2个点,常规建图。#include <iostream>#include <cstdio>#include <cstring>#include <queue>using namespace std;const int maxn=450;const int INF=0x3f3f3f3f;int n,p,q,S=0,T;...原创 2018-03-16 13:18:18 · 158 阅读 · 0 评论 -
洛谷 P3872 [TJOI2010]电影迷(最小割)
首先有一道题可以作为此类问题的模型:洛谷 P1646 [国家集训队]happiness 简单地说就是每个点由S和向T连边,分别表示选/不选该点;点与点之间连边,表示两个点分别选某一状态的额外权值。本题: S向每个点连边,容量1000-v;每个点向T连边,容量1000;每组dXY由y向x连边,容量d。n*1000-最小割即为答案。总结技巧: 1、权值取负可以化最大值为最小割。 2、...原创 2018-04-08 21:47:35 · 220 阅读 · 0 评论 -
洛谷 P3965 [TJOI2013]循环格(费用流)
本题最关键的一点在于转化条件。完美循环格,即所有点都在一些环中的条件等价于:所有点入度均为1。 证明:显然,如果某个点入度为0,那么这个点一定不在环中;如果某个点入度大于1,因为每个点出度都为1,那么一定有一些点入度为0,不符合条件。 这样就是一个很简单的费用流了。...原创 2018-04-11 13:47:58 · 131 阅读 · 0 评论 -
洛谷 P2488 [SDOI2011]工作安排
三倍经验:洛谷 P2050 [NOI2012]美食节、洛谷 [SCOI2007]修车这题感觉就是p2050的弱化版,而且还不用倒着做。。 连边S->产品,容量c,费用0;产品-> 员工,容量INF,费用0;员工->T各连s+1条,容量为分段函数各段长度(最后一条INF),费用为愤怒值。然后跑费用流即可。因为保证各段愤怒值单调递增,所以一定从前面的段选起。 好像不用动态加边...原创 2018-04-12 19:00:30 · 212 阅读 · 0 评论 -
洛谷 P4068 [SDOI2016]数字配对
两种建图方法: 1、每种数拆点ai,a′iai,ai′a_i,a_i',然后O(n2)O(n2)O(n^2)暴力求出可以匹配的ai,ajai,aja_i,a_j,连边(ai,a′j,INF,c[i]∗c[j])(ai,aj′,INF,c[i]∗c[j])(a_i,a_j',INF,c[i]*c[j])和(a′i,aj,INF,c[i]∗c[j])(ai′,aj,INF,c[i]∗c[j])(a_...原创 2018-04-12 20:11:32 · 224 阅读 · 0 评论