注意把书拆成两份

#include <iostream>
#include <cstring>
#include <cstdio>
#include <queue>
using namespace std;
int nb, nc, na, hea[40005], cnt, cur[40005], ss, tt, uu, vv, ww, maxFlow;
int lev[40005];
const int oo=0x3f3f3f3f;
queue<int> d;
struct Edge{
int too, nxt, val;
}edge[150005];
void add_edge(int fro, int too, int val){
edge[cnt].nxt = hea[fro];
edge[cnt].too = too;
edge[cnt].val = val;
hea[fro] = cnt++;
}
void addEdge(int fro, int too, int val){
add_edge(fro, too, val);
add_edge(too, fro, 0);
}
bool bfs(){
memset(lev, 0, sizeof(lev));
lev[ss] = 1;
d.push(ss);
while(!d.empty()){
int x=d.front();
d.pop();
for(int i=hea[x]; i!=-1; i=edge[i].nxt){
int t=edge[i].too;
if(!lev[t] && edge[i].val>0){
lev[t] = lev[x] + 1;
d.push(t);
}
}
}
return lev[tt]!=0;
}
int dfs(int x, int lim){
if(x==tt) return lim;
int addFlow=0;
for(int &i=cur[x]; i!=-1 && addFlow<lim; i=edge[i].nxt){
int t=edge[i].too;
if(lev[t]==lev[x]+1 && edge[i].val>0){
int tmp=dfs(t, min(lim-addFlow, edge[i].val));
edge[i].val -= tmp;
edge[i^1].val += tmp;
addFlow += tmp;
}
}
return addFlow;
}
void dinic(){
while(bfs()){
for(int i=0; i<=tt; i++) cur[i] = hea[i];
maxFlow += dfs(ss, oo);
}
}
int main(){
memset(hea, -1, sizeof(hea));
cin>>nb>>nc>>na;
ss = 0; tt = nb + nb + nc + na + 1;
cin>>ww;
while(ww--){
scanf("%d %d", &uu, &vv);
addEdge(vv, uu+nc, 1);
}
cin>>ww;
while(ww--){
scanf("%d %d", &uu, &vv);
addEdge(uu+nc+nb, vv+nb+nc+nb, 1);
}
for(int i=1; i<=nc; i++)
addEdge(ss, i, 1);
for(int i=nc+1; i<=nc+nb; i++)
addEdge(i, i+nb, 1);
for(int i=nb+nc+nb+1; i<=nb+nc+na+nb; i++)
addEdge(i, tt, 1);
dinic();
cout<<maxFlow<<endl;
return 0;
}

最新文章

  1. 激光打印机的Color/paper, Xerography介绍
  2. 自动化安装SQL Server+SP就那么简单
  3. linux 两个文件合并
  4. Paxos算法细节详解(一)--通过现实世界描述算法
  5. ios 设置状态栏文本颜色为白色
  6. rhel_7.x 安装mysql
  7. HCTF2016-杂项签到
  8. 使用LinkedList实现Stack与Queue
  9. Linux下tomcat使用
  10. Android setContentView方法解析(一)
  11. 高通msm8994手动提升性能脚本
  12. golang slice 经典例题
  13. ENABLE_DDL_LOGGING 参数使用 监控对象的DDL(在alter 日志记录DDL语句)
  14. F#周报2019年第7期
  15. Nginx---(Server虚拟主机)
  16. Oracle 在函数或存储过程中执行一条插入语句并返回主键ID值
  17. mac下搭建node+koa2项目
  18. java基础篇---文件上传(smartupload组件)
  19. BZOJ1407: [Noi2002]Savage exgcd
  20. 关于找不到stdafx.h头文件问题(pass)

热门文章

  1. 牛客网Java刷题知识点之什么是迭代器
  2. Django的模型与字段
  3. gulp-htmlone的BUG弃坑
  4. var声明提前 undefined
  5. Sass基本特性
  6. Vivado增量式编译
  7. Lucene全文检索技术学习
  8. Window10 开启传统启动界面
  9. centos中安装elasticsearch5.0
  10. MySQL报错竞技赛