zoukankan      html  css  js  c++  java
  • 51Nod 2006 飞行员配对(二分图最大匹配)

    第二次世界大战时期,英国皇家空军从沦陷国征募了大量外籍飞行员。由皇家空军派出的每一架飞机都需要配备在航行技能和语言上能互相配合的2名飞行员,其中1名是英国飞行员,另1名是外籍飞行员。在众多的飞行员中,每一名外籍飞行员都可以与其他若干名英国飞行员很好地配合。如何选择配对飞行的飞行员才能使一次派出最多的飞机。对于给定的外籍飞行员与英国飞行员的配合情况,试设计一个算法找出最佳飞行员配对方案,使皇家空 军一次能派出最多的飞机 。对于给定的外籍飞行员与英国飞行员的配合情况,编程找出一个最佳飞行员配对方案, 使皇家空军一次能派出最多的飞机。 

    Input
    第1行有2个正整数 m 和 n。n 是皇家空军的飞行 员总数(n<100);m 是外籍飞行员数。外籍飞行员编号为 1~m;英国飞行员编号为 m+1~n。接下来每行有 2 个正整数 i 和 j,表示外籍飞行员 i 可以和英国飞行员 j 配合。输入最后以 2 个-1 结束。
    Output
    第 1 行是最佳飞行 员配对方案一次能派出的最多的飞机数 M。如果所求的最佳飞行员配对方案不存在,则输出‘No Solution!’。
    Input示例
    5 10
    1 7
    1 8
    2 6
    2 9
    2 10
    3 7
    3 8
    4 7
    4 8
    5 10
    -1 -1
    Output示例
    4

    思路:
    二分图最大匹配日裸题

    实现代码:
    #include<bits/stdc++.h>
    using namespace std;
    int n,m;
    int mp[200][200],use[200],lank[200];
    bool dfs(int u){
        for(int i=n+1;i<=m;i++){
            if(mp[u][i]&&use[i]==0){
                use[i] = 1;
                if(lank[i]==0||dfs(lank[i])){
                    lank[i] = u;
                    return 1;
                }
            }
        }
        return 0;
    }
    int main()
    {
        int x,y;
        while(cin>>n>>m){
            memset(lank,0,sizeof(lank));
            memset(mp,0,sizeof(mp));
            while(1){
                cin>>x>>y;
                if(x==-1&&y==-1)
                    break;
                mp[x][y] = 1;
            }
            int ans = 0;
            for(int i=1;i<=n;i++){
                memset(use,0,sizeof(use));
                if(dfs(i))
                    ans++;
            }
            if(ans)
            cout<<ans<<endl;
            else
            cout<<"No Solution!"<<endl;
        }
        return 0;
    }
  • 相关阅读:
    谈谈toLocaleString()
    如何理解NaN?
    Element--->>>最新骨架屏Skeleton使用
    自定义select组件
    微信小程序之配置业务域名踩过的坑
    Vue watch监听 date中的变量 与 数组或者对象的数据变化
    Vue + Element table的@select方法获取当table中的id值都相同时,获取他们索引
    Vue + Element table中的某行触发enter事件后,使该行disabled
    Vue + Element tree树形控件的懒加载使用
    Vue web使用LeapFTP 上传到服务器
  • 原文地址:https://www.cnblogs.com/kls123/p/7762843.html
Copyright © 2011-2022 走看看