Cogs 14. [网络流24题] 搭配飞行员
#include<bits/stdc++.h>
using namespace std;
int G[][],vis[],girl[],n,n1;
int hungry(int boy)
{
int i;
for(i=n1+;i<=n;i++)
{
if(G[boy][i]==&&vis[i]==)
{
vis[i]=;
if(hungry(girl[i])==||girl[i]==)
{
girl[i]=boy;
return ;
}
}
}
return ;
}
int main()
{
int a,b,sum,i;
scanf("%d %d",&n,&n1);
while(scanf("%d %d",&a,&b)!=EOF)G[a][b]=;
memset(girl,,sizeof(girl));
sum=;
for(i=;i<=n1;i++)
{
memset(vis,,sizeof(vis));
if(hungry(i)==)sum++;
}
printf("%d",sum);
return ;
}
#include<cstdio>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<algorithm>
using namespace std;
int n,s,t,q[],dis[],G[][];
int Min(int aaa,int bbb){if(aaa>bbb)return bbb;else return aaa;}
int Bfs()
{
int head,tail,u,v;
memset(q,,sizeof(q)),head=,tail=,q[tail]=s;
memset(dis,-,sizeof(dis)),dis[s]=;
while(head<=tail)
{
u=q[++head];
for(v=;v<=n;v++)
{
if(G[u][v]>&&dis[v]<)
{
dis[v]=dis[u]+;
q[++tail]=v;
}
}
}
if(dis[n]<=)return ;
else return ;
}
int Dfs(int u,int minflow)
{
int v,ans;
if(u==n)return minflow;
for(v=;v<=n;v++)
{
if(G[u][v]>&&dis[v]==dis[u]+)
{
ans=Dfs(v,Min(minflow,G[u][v]));
if(ans!=)
{
G[u][v]-=ans;
G[v][u]+=ans;
return ans;
}
}
}
return ;
}
int Dinic()
{
int maxflow=,ans;
while(Bfs()!=)
{
ans=Dfs(s,0x7fffffff);if(ans==)break;maxflow+=ans;
}
return maxflow;
}
int main()
{
int n1,a,b,i;
scanf("%d %d",&n,&n1);
while(scanf("%d %d",&a,&b)!=EOF)G[a][b]=;
n+=;s=n-;t=n;
for(i=;i<=n1;i++)G[s][i]=;
for(i=n1+;i<=n-;i++)G[i][t]=;
printf("%d",Dinic());
return ;
}
Cogs 14. [网络流24题] 搭配飞行员的更多相关文章
- cogs 14. [网络流24题] 搭配飞行员 二分图最大匹配 匈牙利算法
14. [网络流24题] 搭配飞行员 ★★ 输入文件:flyer.in 输出文件:flyer.out 简单对比时间限制:1 s 内存限制:128 MB [问题描述] 飞行大队有 ...
- Cogs 14. [网络流24题] 搭配飞行员(二分图匹配)
[网络流24题] 搭配飞行员 ★★☆ 输入文件:flyer.in 输出文件:flyer.out 简单对比 时间限制:1 s 内存限制:128 MB [问题描述] 飞行大队有若干个来自各地的驾驶员,专门 ...
- [COGS 0014][网络流24题] 搭配飞行员
先贴题面 14. [网络流24题] 搭配飞行员 ★★☆ 输入文件:flyer.in 输出文件:flyer.out简单对比时间限制:1 s 内存限制:128 MB [问题描述] 飞行 ...
- COGS——C 14. [网络流24题] 搭配飞行员
http://cogs.pro/cogs/problem/problem.php?pid=14 ★★☆ 输入文件:flyer.in 输出文件:flyer.out 简单对比时间限制:1 s ...
- [网络流24题] 搭配飞行员(cogs 14)
[问题描述] 飞行大队有若干个来自各地的驾驶员,专门驾驶一种型号的飞机,这种飞机每架有两个驾驶员,需一个正驾驶员和一个副驾驶员.由于种种原因,例如相互配合的问题,有些驾驶员不能在同一架飞机上飞 ...
- COGS14. [网络流24题] 搭配飞行员
[问题描述] 飞行大队有若干个来自各地的驾驶员,专门驾驶一种型号的飞机,这种飞机每架有两个驾驶员,需一个正驾驶员和一个副驾驶员.由于种种原因,例如相互配合的问题,有些驾驶员不能在同一架飞机上飞 ...
- 【COGS 14】 [网络流24题] 搭配飞行员 网络流板子题
用网络流水二分图的模型(存一下板子) #include <cstdio> #include <cstring> #include <algorithm> #defi ...
- 网络流24题 搭配飞行员(DCOJ8000)
题目描述 飞行大队有若干个来自各地的驾驶员,专门驾驶一种型号的飞机,这种飞机每架有两个驾驶员,需一个正驾驶员和一个副驾驶员.由于种种原因,例如相互配合的问题,有些驾驶员不能在同一架飞机上飞行,问如何搭 ...
- [网络流 24 题] luoguP2756 飞行员配对方案问题
[返回网络流 24 题索引] 题目描述 英国皇家空军从沦陷国征募了大量外籍飞行员.由皇家空军派出的每一架飞机都需要配备在航行技能和语言上能互相配合的 222 名飞行员,其中 111 名是英国飞行员,另 ...
随机推荐
- java 内核
摘自:http://www.cubrid.org/blog/tags/Java/
- 在Excel中制作复合饼图
在Excel中插入饼图时有时会遇到这种情况,饼图中的一些数值具有较小的百分比,将其放到同一个饼图中难以看清这些数据,这时使用复合条饼图就可以提高小百分比的可读性. 文中的复合饼图只是方便以后记忆,故不 ...
- Java-坦克大战
利用Java语言中的集合.Swing.线程等知识点编写一个坦克大战游戏.(1) 画出敌我坦克的原理:在坦克类里面有一个布尔类型变量good.用于判断坦克的阵营,在创建坦克对象时在Tank类的构造方法中 ...
- 数据源增量处理(Delta Proess)三大属性:Recod Mode、Delta Type、Serialization
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- SQL 已有数据的表创建标识列
针对已有数据的表创建标识列: ,) constraint FID_1 primary key(FID)
- python-05
首先是安装工具 Linux 安装mysql:mysql-server 安装python-mysql模块: python-mysqldb Windows 下载安装mysql python操作mysql模 ...
- PUTTY用密钥登陆服务器
1.puttygen生成private_key和public_key,保存private_key: 2.在 ~/.ssh/authorized_keys中添加public_key,(vi ~/.ssh ...
- Python学习---除法
python有两种除法,普通除法 a/b ,不论a,b精度 得到的都是浮点数. 4/2 = 2.0 3/5 = 0.6 floor除法,a//b , 得到一个舍弃小数位的整数结果,所以结果永远是 ...
- openssl 非对称加密 RSA 加密解密以及签名验证签名
1. 简介 openssl rsa.h 提供了密码学中公钥加密体系的一些接口, 本文主要讨论利用rsa.h接口开发以下功能 公钥私钥的生成 公钥加密,私钥解密 私钥加密,公钥解密 签名:私钥签名 验 ...
- ActiveReport 同一单元格内图片跟文字按条件显示
ActiveReports支持提供Image控件来显示图片素材,Image控件的值可以为图像的二进制流,图像路径,或url等:而在很多情况下,图片是签名扫描文件,并不会一直有值.如果图片的值为空,则显 ...