zoukankan      html  css  js  c++  java
  • LiberOJ-#6000. 「网络流 24 题」搭配飞行员 (二分图匹配)

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

    内存限制:256 MiB时间限制:1000 ms标准输入输出
    题目类型:传统评测方式:文本比较
    上传者: 匿名

    题目描述

    飞行大队有若干个来自各地的驾驶员,专门驾驶一种型号的飞机,这种飞机每架有两个驾驶员,需一个正驾驶员和一个副驾驶员。由于种种原因,例如相互配合的问题,有些驾驶员不能在同一架飞机上飞行,问如何搭配驾驶员才能使出航的飞机最多。

    因为驾驶工作分工严格,两个正驾驶员或两个副驾驶员都不能同机飞行。

    输入格式

    第一行,两个整数 n nn 与 m mm,表示共有 n nn 个飞行员,其中有 m mm 名飞行员是正驾驶员。
    下面有若干行,每行有 2 22 个数字 a aa、b bb。表示正驾驶员 a aa 和副驾驶员 b bb 可以同机飞行。
    注:正驾驶员的编号在前,即正驾驶员的编号小于副驾驶员的编号。

    输出格式

    仅一行一个整数,表示最大起飞的飞机数。

    样例

    样例输入

    10 5
    1 7
    2 6
    2 10
    3 7
    4 8
    5 9

    样例输出

    4

    数据范围与提示

    2≤n≤100 2 leq n leq 1002n100

     1 #include "bits/stdc++.h"
     2 using namespace std;
     3 typedef long long LL;
     4 const int MAX=105;
     5 int n,m;
     6 int a[MAX][MAX],cc[MAX];
     7 bool vis[MAX];
     8 void init(){
     9     int i,j;
    10     scanf("%d%d",&n,&m);
    11     int u,v;
    12     memset(a,0,sizeof(a));
    13     while (~scanf("%d%d",&u,&v)) a[u][v]=a[v][u]=1;
    14     memset(cc,-1,sizeof(cc));
    15 }
    16 int match(int u){
    17     int i,j;
    18     for (i=m+1;i<=n;i++){
    19         if (a[u][i] && !vis[i]){
    20             vis[i]=true;
    21             if (cc[i]==-1 || match(cc[i])){
    22                 cc[i]=u;
    23                 return 1;
    24             }
    25         }
    26     }
    27     return 0;
    28 }
    29 int main(){
    30     freopen ("pilot.in","r",stdin);
    31     freopen ("pilot.out","w",stdout);
    32     int i,j;init();
    33     int ans=0;
    34     for (i=1;i<=m;i++){
    35         memset(vis,false,sizeof(vis));
    36         ans+=match(i);
    37     }
    38     printf("%d",ans);
    39     return 0;
    40 }
    未来是什么样,未来会发生什么,谁也不知道。 但是我知道, 起码从今天开始努力, 肯定比从明天开始努力, 要快一天实现梦想。 千里之行,始于足下! ——《那年那兔那些事儿》
  • 相关阅读:
    记录此刻的感受(2018年8月26日19:44)
    提高工作效率
    VS C++项目报错warning C4199: ……use /Zc:twoPhase-
    dll加载遇到的问题
    记录xerces使用(VS2017 C++)
    vs编译应用程序不依赖运行vs环境
    [Locked] Binary Tree Vertical Order Traversal
    [Locked] Group Shifted Strings
    [Locked] Graph Valid Tree
    [Locked] Flatten 2D Vector
  • 原文地址:https://www.cnblogs.com/keximeiruguo/p/7361106.html
Copyright © 2011-2022 走看看