[网络流24题] COGS 搭配飞行员
14. [网络流24题] 搭配飞行员
★★☆ 输入文件:flyer.in 输出文件:flyer.out 简单对比
时间限制:1 s 内存限制:128 MB

第一行,两个整数n与n1,表示共有n个飞行员(2<=n<=100),其中有n1名飞行员是正驾驶员.
下面有若干行,每行有2个数字a,b。表示正驾驶员a和副驾驶员b可以同机飞行。
第一行,1个整数,表示最大起飞的飞机数。
1 7
2 6
2 10
3 7
4 8
5 9
#include<iostream>
#include<cstring>
#include<queue>
#include<cstdio>
#define maxn 10001
using namespace std;
struct data{int v,next,c;}e[maxn*+];
int n,m,max1=1e9,ans,tot,cnt=,dep[maxn],head[maxn];
inline int read(){
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<='') x=x*+ch-,ch=getchar();
return x*f;
}
void add(int u,int v,int x){
e[++cnt].v=v;e[cnt].c=x;
e[cnt].next=head[u];head[u]=cnt;
}
bool BFS(){
memset(dep,-,sizeof dep );
queue<int>q;q.push();dep[]=;
while(!q.empty()){
int u=q.front();q.pop();
for(int i=head[u];i;i=e[i].next){
int v=e[i].v;
if(dep[v]==-&&e[i].c){
dep[v]=dep[u]+;
if(v==n+)return true;
else q.push(v);
}
}
}
return dep[n+]!=-;
}
int dfs(int u,int y){
if(u==n+)return y;
int ret=;
for(int i=head[u];i;i=e[i].next){
int v=e[i].v;
if(dep[v]==dep[u]+&&e[i].c){
int x=dfs(v,min(y-ret,e[i].c));
ret+=x;
e[i].c-=x;
e[i^].c+=x;
}
}
if(!ret)dep[u]=-;
return ret;
}
void Dinic(int s,int t){
while(BFS())ans+=dfs(s,max1);
printf("%d\n",ans);
return ;
}
int main(){
freopen("flyer.in","r",stdin);
freopen("flyer.out","w",stdout);
int x,y;
n=read();m=read();
for(int i=;i<=m;i++)add(,i,),add(i,,);
for(int i=m+;i<=n;i++)add(i,n+,),add(n+,i,);
while(scanf("%d%d",&x,&y)!=EOF)
add(x,y,max1),add(y,x,);
Dinic(,n+);
return ;
}
[网络流24题] COGS 搭配飞行员的更多相关文章
- CJOJ 1494 【网络流24题】 搭配飞行员(二分图最大匹配)
CJOJ 1494 [网络流24题] 搭配飞行员(二分图最大匹配) Description 飞行大队有若干个来自各地的驾驶员,专门驾驶一种型号的飞机,这种飞机每架有两个驾驶员,需一个正驾驶员和一个副驾 ...
- LOJ6000 - 「网络流 24 题」搭配飞行员
原题链接 题意简述 求二分图的最大匹配. 题解 这里写的是匈牙利算法. 表示节点的当前匹配. 为真表示在这一轮匹配中,无法给节点一个新的匹配.所以如果为真就不用再dfs它了,直接continue就好. ...
- LibreOJ #6000. 「网络流 24 题」搭配飞行员 最大匹配
#6000. 「网络流 24 题」搭配飞行员 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: 匿名 提交提交记录统计讨论测试数据 题目描述 ...
- LibreOJ #6000. 「网络流 24 题」搭配飞行员
二次联通门 : LibreOJ #6000. 「网络流 24 题」搭配飞行员 /* LibreOJ #6000. 「网络流 24 题」搭配飞行员 二分图最大匹配 Dinic最大流 + 当前弧优化 */ ...
- 【刷题】LOJ 6000 「网络流 24 题」搭配飞行员
题目描述 飞行大队有若干个来自各地的驾驶员,专门驾驶一种型号的飞机,这种飞机每架有两个驾驶员,需一个正驾驶员和一个副驾驶员.由于种种原因,例如相互配合的问题,有些驾驶员不能在同一架飞机上飞行,问如何搭 ...
- Loj #6000.「 网络流 24 题 」搭配飞行员
解题思路 考虑如何建模. 既然是网络流,那么肯定要有源点和汇点.而这个题目并没有什么明显的源点和汇点. 想一想,如果一个飞机能够起飞的话,那么必定有一对可以配对的正副驾驶员.也就是说一条曾广路能够上必 ...
- [日常摸鱼]loj6000「网络流 24 题」搭配飞行员
题面 应该是二分图匹配,不过我写的是网络最大流. dinic求二分图最大匹配:加个源点和汇点,源点连向二分图的一边所有点,二分图的另一边所有点连向汇点,很明显这样得到的最大流就是这个二分图的最大匹配. ...
- [网络流24题] COGS 750 栅格网络流
750. 栅格网络流 ★★☆ 输入文件:flowa.in 输出文件:flowa.out 简单对比时间限制:1 s 内存限制:128 MB [问题描述] Bob 觉得一般图的最大流问题太 ...
- [网络流24题] COGS 运输问题1
11. 运输问题1 ★★☆ 输入文件:maxflowa.in 输出文件:maxflowa.out 简单对比时间限制:1 s 内存限制:128 MB [问题描述] 一个工厂每天生 ...
随机推荐
- 如何查看连接到手机热点的ip地址
因为最近玩树莓派,需要手机做热点,然后用树莓派连接到这个热点上,苦于不知道树莓派被分配了什么样的ip地址,经过一番探索,我发现了两种办法, 安装一个 android terminal( 安卓命令行), ...
- 三 python并发编程之多线程-重点
一 threading模块介绍 multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性,因而不再详细介绍 二 开启线程的两种方式 #方式一 from th ...
- JZOJ 4722. 跳楼机
Description DJL为了避免成为一只咸鱼,来找srwudi学习压代码的技巧.Srwudi的家是一幢h层的摩天大楼.由于前来学习的蒟蒻越来越多,srwudi改造了一个跳楼机,使得访客可以更方 ...
- 数学算法:CF534A-Exam(思维)
Exam time limit per test 1 second memory limit per test 256 megabytes input standard input output st ...
- 怎么把myeclipse项目导入IDEA中
先把myeclipse下的项目拷贝到IDEA的部署目录中,把一些不用的配置文件删除,只留下一个干净的项目 打开IDEA,点击import Project,引入一个项目,选择IDEA部署目录下刚拷贝过去 ...
- Diycode开源项目 Glide图片加载分析
1.使用Glide前的准备 1.1.首先要build.gradle中添加 github原地址点击我. 参考博客:Glide-开始! 参考博客:android图片加载库Glide的使用介绍. 参考博 ...
- oracle 11g 版本自带移除,省时省力
---oracle删除 app\Administrator\product\11.2.0\dbhome_1\deinstall.bat 指定要取消配置的所有单实例监听程序 [LISTENER]: En ...
- HDU1042 A * B Problem Plus
A * B Problem Plus Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- proguaid 混淆代码
注意:这里有一个坑.就是-ignorewarnings 他老是混淆不了,告诉你不行.其实加上这句话,就可以了. 下面贴一下代码: -injars c:/ceb_lib.jar -outjars c:/ ...
- Windows Server 2012之活动目录域服务的卸载
Windows Server 2012之活动目录域服务的卸载 2012-07-11 06:27:35 标签:Windows Server 2012 活动目录域服务 卸载 原创作品,允许转载,转载时请务 ...