经典问题,货物供需平衡,很容易想到网络流,设源点和汇点,源点对每个仓库连一条capacity为仓库容量的边,cost为0,每个商店对汇点连一条capacity为需要的量的点,cost为0,每一个仓库与商店之间连一条capacity为无限大,cost为给定的边,直接跑最小费用最大流即可,求最大费用就去 ...
分类:
其他好文 时间:
2020-02-08 00:22:40
阅读次数:
64
网络流 最大流和最小费用最大流原理 上下界网络流 模拟费用流 网络流建模总结 带花树 树 树上倍增 树链剖分 点分治 基环树 DP 概率期望dp 单调队列dp 状压dp 斜率优化dp 计算几何 模板 半平面交 好题 数据结构 线段树高级应用 可持久化线段树 Treap Splay 可持久化平衡树 树 ...
分类:
编程语言 时间:
2020-02-05 09:27:29
阅读次数:
86
题目链接:https://vjudge.net/problem/POJ-2516 思路:对于每种商品跑最小费用最大流,如果所有商品和人一起建图跑,O(v^2*m)数量级太大,会超时。 把店里的商品拆点,入和出之间是商品库存量,起到限流作用。 源点->人对该商品的需求->库存点入->库存点出->汇点 ...
分类:
其他好文 时间:
2020-02-04 12:26:42
阅读次数:
79
题目:P1559 https://www.luogu.com.cn/problem/P1559 羽毛球队有男女运动员各n人。给定2 个n×n矩阵P和Q。P[i][j]是男运动员i和女运动员j配对组成混合双打的男运动员竞赛优势;Q[i][j]是女运动员i和男运动员j配合的女运动员竞赛优势。由于技术配合 ...
分类:
其他好文 时间:
2020-01-30 09:19:16
阅读次数:
66
二分图匹配: 1.匈牙利算法 O(n * m) n为二分图左侧点数 m为二分图右侧点数 #include<bits/stdc++.h> using namespace std; const int N=1e7; struct node{ int from,to,nxt; }e[N]; int hea ...
分类:
其他好文 时间:
2020-01-26 22:05:33
阅读次数:
66
```cpp #include #include #include #include #include #include using namespace std; const int N=1e4+10,M=2e5+10,inf=0x3f3f3f3f; int n,m,s,t; int nxt[M],... ...
分类:
其他好文 时间:
2020-01-17 11:46:18
阅读次数:
65
"题意" 首先将棋盘黑白染色,要使得棋盘不漏水,当且仅当每个黑点的各个方向的管口都连接上了一个白点的管口。换句话说,我们要让黑点和白点匹配数最大的同时操作次数最小,不难想到最小费用最大流。 对于一条边的描述$(w,c)$表示容量为$w$,费用为$c$。 我们将每个点拆成上下左右四个点,从源点向黑点的 ...
分类:
其他好文 时间:
2019-12-28 16:18:10
阅读次数:
69
"题意" 第一问没什么好说的,就是个最大流。 第二问我们考虑怎么处理费用和增大$K$的限制。 费用: 每条边重新建一遍,带上费用就好了。 增大$K$: 我们可以利用残余网络,新建虚拟源点$S$,从$S$向$1$连容量为$K$费用为$0$的边,这样我们从S再跑一遍最小费用最大流即可。 code: ...
分类:
其他好文 时间:
2019-12-27 18:08:40
阅读次数:
62
关于最小费用最大流 这里的最小费用最大流是在最大流的基础上把费用最小化 Ek费用流 因为会有负边权,所以需要用Spfa求出最小费用,之后Ek一发就好 代码还是不放了吧 ZKW费用流 和Dinic几乎一样,就是在dfs的时候记一个vis数组即可,否则出0环就写比了 ZKW费用流在层数较少的时候会很快, ...
分类:
其他好文 时间:
2019-12-08 17:56:30
阅读次数:
129
1 #include<iostream> 2 #include<queue> 3 #include<cstring> 4 #include<cstdio> 5 using namespace std; 6 7 #define Design ios::sync_with_stdio(0),cin.ti ...
分类:
其他好文 时间:
2019-11-27 15:00:15
阅读次数:
50