题解:最基础的最大流,按照主飞行员与起点建边,副飞行员与终点建边,可以同坐的主副飞行员之间建边,值均为一,然后跑一边最大流就完美了!

代码如下:

  1. #include<queue>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<iostream>
  5. #include<algorithm>
  6. #define inf 0x3f3f3f3f
  7. using namespace std;
  8. int head[],next[],v[],w[],deep[];
  9. int s,t,cnt;
  10. void init()
  11. {
  12. cnt=-;
  13. memset(head,-,sizeof(head));
  14. memset(next,-,sizeof(next));
  15. }
  16. void add(int from,int to,int cost)
  17. {
  18. cnt++;
  19. next[cnt]=head[from];
  20. v[cnt]=to;
  21. w[cnt]=cost;
  22. head[from]=cnt;
  23. }
  24. void add_edge(int from,int to,int cost)
  25. {
  26. add(from,to,cost);
  27. add(to,from,);
  28. }
  29. int bfs(int s,int t)
  30. {
  31. queue<int> q;
  32. memset(deep,,sizeof(deep));
  33. deep[s]=;
  34. q.push(s);
  35. while(!q.empty())
  36. {
  37. int u=q.front();
  38. q.pop();
  39. for(int i=head[u];i!=-;i=next[i])
  40. {
  41. if(w[i]>&&(!deep[v[i]]))
  42. {
  43. deep[v[i]]=deep[u]+;
  44. q.push(v[i]);
  45. }
  46. }
  47. }
  48. if(!deep[t])
  49. {
  50. return ;
  51. }
  52. return ;
  53. }
  54. int dfs(int u,int t,int dist)
  55. {
  56. if(u==t)
  57. {
  58. return dist;
  59. }
  60. for(int i=head[u];i!=-;i=next[i])
  61. {
  62. if((deep[v[i]]==deep[u]+)&&w[i])
  63. {
  64. int di=dfs(v[i],t,min(w[i],dist));
  65. if(di>)
  66. {
  67. w[i]-=di;
  68. w[i^]+=di;
  69. return di;
  70. }
  71. }
  72. }
  73. return ;
  74. }
  75. int dinic(int s,int t)
  76. {
  77. int res=;
  78. while(bfs(s,t))
  79. {
  80. while(int d=dfs(s,t,inf))
  81. {
  82. res+=d;
  83. }
  84. }
  85. return res;
  86. }
  87. int main()
  88. {
  89. int n,m;
  90. init();
  91. scanf("%d%d",&n,&m);
  92. s=;t=n+;
  93. for(int i=;i<=m;i++)
  94. {
  95. add_edge(s,i,);
  96. }
  97. for(int i=m+;i<=n;i++)
  98. {
  99. add_edge(i,t,);
  100. }
  101. int x,y;
  102. while(scanf("%d%d",&x,&y)!=EOF)
  103. {
  104. add_edge(x,y,);
  105. }
  106. int ans=dinic(s,t);
  107. printf("%d\n",ans);
  108. }

LibreOJ 6000 搭配飞行员(最大流)的更多相关文章

  1. [LOJ 6000]搭配飞行员

    link 其实就是一道二分图匹配板子,我们建立$S$,$T$为源点与汇点,然后分别将$S$连向所有正驾驶员,边权为$1$,然后将副驾驶员与$T$相连,边权为$1$,将数据中给出的$(a,b)$,将$a ...

  2. LibreOJ #6000. 「网络流 24 题」搭配飞行员

    二次联通门 : LibreOJ #6000. 「网络流 24 题」搭配飞行员 /* LibreOJ #6000. 「网络流 24 题」搭配飞行员 二分图最大匹配 Dinic最大流 + 当前弧优化 */ ...

  3. LibreOJ #6000. 「网络流 24 题」搭配飞行员 最大匹配

    #6000. 「网络流 24 题」搭配飞行员 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: 匿名 提交提交记录统计讨论测试数据   题目描述 ...

  4. cogs_14_搭配飞行员_(二分图匹配+最大流,网络流24题#01)

    描述 http://cojs.tk/cogs/problem/problem.php?pid=14 有一些正飞行员和副飞行员,给出每个正飞行员可以和哪些副飞行员一起飞.一架飞机上必须一正一副,求最多多 ...

  5. COGS14. [网络流24题] 搭配飞行员

    [问题描述]     飞行大队有若干个来自各地的驾驶员,专门驾驶一种型号的飞机,这种飞机每架有两个驾驶员,需一个正驾驶员和一个副驾驶员.由于种种原因,例如相互配合的问题,有些驾驶员不能在同一架飞机上飞 ...

  6. [COGS 0014][网络流24题] 搭配飞行员

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

  7. Cogs 14. [网络流24题] 搭配飞行员(二分图匹配)

    [网络流24题] 搭配飞行员 ★★☆ 输入文件:flyer.in 输出文件:flyer.out 简单对比 时间限制:1 s 内存限制:128 MB [问题描述] 飞行大队有若干个来自各地的驾驶员,专门 ...

  8. [网络流24题] 搭配飞行员(cogs 14)

    [问题描述]     飞行大队有若干个来自各地的驾驶员,专门驾驶一种型号的飞机,这种飞机每架有两个驾驶员,需一个正驾驶员和一个副驾驶员.由于种种原因,例如相互配合的问题,有些驾驶员不能在同一架飞机上飞 ...

  9. 匈牙利算法 cojs.tk 搭配飞行员

    cojs.tk  搭配飞行员 ★★☆   输入文件:flyer.in   输出文件:flyer.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述]     飞行大队有若干个 ...

随机推荐

  1. mybatis+druid+springboot 注解方式配置多个数据源

    1\数据库配置 #test数据源 spring.datasource.test.url=jdbc:mysql:///db?useUnicode= spring.datasource.test.user ...

  2. [三卷天书]ajax请求时接收到乱码的处理方案

    $.ajax({ url: "getmore.ashx", type: "post", dataType: "text", data: { ...

  3. 第15届浙江省赛 E LIS

    LIS Time Limit: 1 Second      Memory Limit: 65536 KB      Special Judge DreamGrid is learning the LI ...

  4. Java-Runoob:Java 基本数据类型

    ylbtech-Java-Runoob:Java 基本数据类型 1.返回顶部 1. Java 基本数据类型 变量就是申请内存来存储值.也就是说,当创建变量的时候,需要在内存中申请空间. 内存管理系统根 ...

  5. 字符串转换为字典的函数eval(字符串)

    首先把多行的字符串,变成一个字符串,用'''和'''扩起来: 然后把这个字符串,赋值给b 这个时候,b根本调不出来,也用不起来: 用eval(b),来格式化字符串变成字典: 然后b就变成了一个字典:

  6. 支付宝pc端支付接入PHP实现

    引入支付宝接口 放入一个插件库中,方便管理 创建支付类 1.发起支付 public function init() { $order_id = $_REQUEST['order_id']; $orde ...

  7. PHP中静态变量的使用

    1.定义静态变量 public static $endpoint,$accessKeyId,$accessKeySecret,$bucket; 2.静态变量赋值 protected function ...

  8. Rest之路 - 搭建开发环境

    准备Jersey框架和类库 从官网 (https://jersey.java.net/download.html) 下载最新的zip文件,解压后如下图: lib: 包含Jersey的所有类库. ext ...

  9. Centos7.2:搭建Ceph管理系统Inscope

    0.引言 好几天没有更新博客了,这几天分配有任务:calamari与inscope管理系统调研.下面就管理系统的环境搭建做一个总结,总结一下搭建流程以及搭建过程中遇到的一些问题.calcamari的搭 ...

  10. 实用webpack-dev-server

    webpack-dev-server的作用 文件作出改动之后,保存,立即开始编译文件 编译后的文件是保存在内存中的,在项目文件夹中看不到编译后的文件 编译完成之后立即自动刷新浏览器 测试webpack ...