LibreOj 6000 搭配飞行员
来源:互联网 发布:python 生物信息 编辑:程序博客网 时间:2024/04/28 08:48
传送门
分析:
一道简单的网络流模板题,也可以用匈牙利算法写。
代码:
#include <bits/stdc++.h>using namespace std;const int maxn = 1e5;struct Edge{ int v , to; int next;} edge[maxn];int head[maxn] , cnt , n , m , from , to;void add_edge(int from , int to , int v){ edge[cnt].to = to; edge[cnt].v = v; edge[cnt].next = head[from]; head[from] = cnt++;}int level[maxn];bool bfs(){ memset(level , 0 , sizeof level); level[from] = 1; queue<int> que; while(!que.empty()) que.pop(); que.push(from); while(!que.empty()) { int u = que.front(); que.pop(); for(int i=head[u]; i!=-1; i=edge[i].next) { if(!level[edge[i].to] && edge[i].v > 0) { level[edge[i].to] = level[u] + 1; que.push(edge[i].to); } } } return level[to];}int cur[maxn] , numm = 0;int dfs(int u , int low){ if(u == to) { return low; } int a; for(int &i=cur[u]; i!=-1; i=edge[i].next) { if(level[edge[i].to] == level[u] + 1 && edge[i].v > 0) { a = dfs(edge[i].to , min(low , edge[i].v)); if(a) { edge[i].v -= a; edge[i^1].v += a; return a; } } } return 0;}int total;int solve(){ int sum = 0 , a; while(bfs()) { memcpy(cur , head , sizeof head); while((a = dfs(from , 0x3f3f3f3f))) sum += a; } return sum; }void init(){ memset(head , -1 , sizeof head); cnt = 0 , total = 0; from = 0 , to = m + n + 1;}int main(){ //freopen("data.in" , "r" , stdin); scanf("%d %d" , &n , &m); init(); int a , b; while(~scanf("%d %d" , &a , &b)) { add_edge(a , b , 1); add_edge(b , a , 0); } for(int i=1; i<=m; i++) { add_edge(from , i , 1); add_edge(i , from , 0); } for(int i=m+1; i<=n; i++) { add_edge(i , to , 1); add_edge(to , i , 0); } printf("%d\n" , solve()); return 0;}
阅读全文
0 0
- LibreOj 6000 搭配飞行员
- libreoj 6000. 「网络流 24 题」搭配飞行员
- 【LibreOJ】#6000. 「网络流 24 题」搭配飞行员 二分图匹配
- 【网络流24题】搭配飞行员/飞行员配对方案
- 01. 搭配飞行员 [网络流24题]
- [网络流24题] 搭配飞行员
- cogs14 [网络流24题]搭配飞行员
- [网络流24题] COGS 搭配飞行员
- [网络流24题]搭配飞行员
- [网络流24题] No1_ 搭配飞行员
- 14. [网络流24题] 搭配飞行员
- LibreOj
- 【网络流24题】【COGS14】飞行员搭配问题
- [网络流24题] 01 搭配飞行员(最大流)
- COGS 14 [网络流24题] 搭配飞行员
- [网络流24题-1]cogs14搭配飞行员
- 【网络流24题 搭配飞行员】二分图匹配
- cogs 14. [网络流24题] 搭配飞行员
- spring mvc
- 实验一(java编程)
- Bitmap常用操作工具方法
- 【概率论】作业六
- Spring MVC 所有请求返回JSON格式数据
- LibreOj 6000 搭配飞行员
- 混合云·芯思路 | 混合云,企业基础架构的不二之选
- 单片机开发相关网站
- 论文阅读:《DeepLab-v2: Semantic Image Segmentation 》
- LibreOj 6004 圆桌聚餐
- JavaScript基础 操作符字符串的隐性转换
- win7,64位,anaconda搭建TensorFlow
- 第七届蓝桥杯大赛个人赛省赛(软件类)java语言B组第八题:四平方和
- 发货和待发货的切换(自己封装data数据)