洛谷_2756 飞行员配对方案问题

6.1 飞行员配对方案问题 1.实验目的 寻找飞行员配对中的最大匹配: 2.实验内容 2.1问题描述 第二次世界大战时期, 英国皇家空军从沦陷国征募了大量外籍飞行员。 由皇家空军派出的每一架飞机都需要配备在航行技能和语言上能互相配合的 2 名飞行员, 其中 1 名是英国飞行员,另 1 名是外籍飞行员。 在众多的飞行员中, 每一名外籍飞行员都可以与其他若干名英国飞行员很好地配合。 如何选择配对飞行的飞行员才能使一次派出最多的飞... 阅读详情

题意

给出n个飞行员,其中有m个外籍的,给出它们的几个匹配关系,求出最多能匹配多少组。

思路

这题可以用二分图的最大匹配,但是这里是网络流的题目,所以我这写的是网络流的。建一个源点连本国的飞行员,汇点连外籍的飞行员,跑一边最大流就求得出答案了。

代码

#include<cstdio>
#define min(a,b) a>b?b:a
#define max(a,b) a>b?a:b
int s,t,m,n,x,y,d,b[101],f[101][101],c[101][101],ans;
int find(int k)
{
    if (k==t) return 1;
    for (int i=0;i<=n+1;i++)
    {
        if (b[i]==-1&&(c[k][i]>f[k][i]||f[i][k]>0))
        {
            b[i]=k;
            if (find(i)) return 1;
        }
    }
    return 0;
}
void add()
{
    d=2147483647;
    int i=t;
    while (i!=s)
    {
        if (c[b[i]][i]>0) d=min(d,c[b[i]][i]-f[b[i]][i]);
        if (c[i][b[i]]>0) d=min(d,f[i][b[i]]);
        i=b[i];
    }
    i=t;
    while (i!=s)
    {
        if (c[b[i]][i]>0) f[b[i]][i]+=d;
        if (c[i][b[i]]>0) f[i][b[i]]-=d;
        i=b[i];
    }
    ans+=d;
}
int main()
{
    scanf("%d%d",&m,&n);
    while (scanf("%d%d",&x,&y),x!=-1||y!=-1) c[x][y]=1;
    s=0;t=n+1;//设源点和汇点
    for (int i=1;i<=m;i++) 
    {
        b[i]=-1;//初始化
        c[s][i]=1;//源点连本国的
    }
    for (int i=m+1;i<=n+1;i++)
    {
        b[i]=-1;
        c[i][t]=1;//连外国的
    }
    b[s]=0;
    while (find(s))//一直找增广路,然后更新流量
    {
        add();
        for (int i=1;i<=n+1;i++)
            b[i]=-1;
    }
    printf("%d\n",ans);//方案数
    for (int i=1;i<=m;i++)
    {
        for (int j=m+1;j<=n;j++)
            if (f[i][j]) {printf("%d %d\n",i,j);break;}//如果这条路之间有流量的话说明它们匹配了
    }
}
【网络流24题】飞行员配对方案问题 【网络流24题】飞行员配对方案问题 经过我修改之后的数据 立即下载

相关推荐

【时空数据分析#06】实战:基于Python与ArcGIS的NDVI长期趋势制图与分级

本文详细介绍了基于Python与ArcGIS进行NDVI长期趋势制图与分级分析的完整工作流。通过整合MODIS卫星数据,利用ArcGIS进行空间处理与栅格转换,结合Python进行时序统计与趋势计算,最终生成直观的植被变化趋势分级图,为生态评估与环境监测提供可靠的空间分析工具。

lilh34434的博客 476

P2756 飞行员配对方案问题 (最大流-二分图最大匹配)

题目来源 P2762 太空飞行计划问题 题目分析 中文题,题意就不用说了吧... 思路:经典二分图匹配问题,我们记M表示外籍飞行员的顶点集合,用N表示英国飞行员的顶点集合,E表示匹配关系,二分图G = (MN,E),则对于任意的 mM,nN, 外籍飞行员m和英国飞行员n匹配(m,n)E 而G中满足两两不含公共端点的变的集合KE的基数|K|的最大值,就是我们需要求的最大匹配数(题目...

天际苍穹的博客 607

解决rt-thread上使用SPI+DMA

首先阐述下遇到的问题 使用SPI读取icm20602数据,读取频率为1000hz,使用stm32f407主控,发现CPU占用率达到了70%,将此线程注释掉后CPU占用率掉到25%,看来这里要着重优化,便萌生了使用DMA的想法。 使用SPI+DMA要进行的配置 1.开启RTT设备驱动。点击自己的工程 ->RT-Thread Setting2.在board.hzhong3.在board.c文件里加入以下函数,此函数受设备框架调用 void HAL_SPI_MspInit(SPI_HandleTypeDef

响望的博客 8085

网络流24题1——飞行员配对方案问题

网络流24题的第一题,主要是一些学习的总结 努力做到比大佬们的博客都要简单易懂~!适合初学网络流的同学 问题描述:每一架飞机都需要配备在航行技能和语言上能互相配合的 2 名飞行员,其中 1 名是英国飞行员,另 1 名是外籍飞行员。对于给定的外籍飞行员与英国飞行员的配合情况,编程找出一个最佳飞行员配对方案,使皇家空军一次能派出最多的飞机。 数据输入:第 1 行有 2 个正整数 m和 n。n 是...

夏日蹲坑的博客 555

从零到一:Quartus II连接开发板实战,打通绘图、管脚分配、编译与下载全链路

本文详细介绍了使用Quartus II软件连接FPGA开发板并完成首个项目的全流程。从硬件连接到驱动安装,到绘制电路框图、精准分配管脚,再到编译设置与最终下载,手把手指导您打通从设计到硬件实现的完整链路,是FPGA初学者的实战入门指南。

mqtt6iot的博客 717

Pure Persuit算法基础

Pure Persuit算法本身的原理不难理解,它主要基于几何原理进行的设备控制,本身不考虑太多的运动学约束。同时机器人的路径跟踪效果应该会比较依赖于预瞄点。对于曲线部分而言,如果曲率很小而预瞄点很远的话,对于曲线的跟随性应该会很差。对于直线而言,如果设备在开始时与轨迹有横向偏差,则在运动过程中机器人会逐渐收敛到曲线,但是收敛速度取决于预瞄点距离。

YiYeZhiNian的博客 1522

飞行员配对方案问题

飞行员配对方案问题 题目描述 核心思路 题意:求二分图的最大匹配并且输出任意一个匹配方案 这个题可以直接用匈牙利算法来求解,时间复杂度是O(nm)O(nm)O(nm)。但是也可以用网络流来求解,时间复杂度是O(mn)O(m\sqrt n)O(mn​),可见使用网络流算法后,效率大大增加了。 结论: 网络流中的某一条可行流 对应着 二分图中的一组匹配 网络流中的最大流 对应着 二分图的最大匹配 因此,我们想要求出二分图的最大匹配,那么就可以使用Dinic算法来求出这个网络的最大流。 那么,我们来思

qq_45832461的博客 886

Hypermesh二次开发实战:从Tcl/Tk脚本到Ext API的进阶之路

本文系统介绍了Hypermesh二次开发的进阶路径,从自动化重复操作的Tcl/Tk脚本入门,到利用HMASCII接口深度读写模型数据,最终深入Ext API进行高性能计算与功能定制。通过实战案例,帮助工程师掌握从脚本录制到C++插件开发的完整技能,显著提升CAE前处理效率与自动化水平。

weixin_29306875的博客 671

洛谷 P2756 飞行员配对方案问题 题解

洛谷 P2756 飞行员配对方案问题 题解

mkx2023275的博客 815

2026软考中级-软件设计师笔记(送最新视频教程)

核心口诀:运控存输输(运算器、控制器、存储器、输入、输出)例题(2019年上半年):核心公式:数字签名流程:数字证书作用:死锁4个必要条件:死锁判断公式:处理策略:程序设计语言的四大核心成分:顺序表操作(时间复杂度):链表操作(时间复杂度):核心思想:频率高的字符用短编码,频率低的用长编码 → 最小化总编码长度构造步骤(贪心算法):前提:有序表(升序/降序) 步骤:时间复杂度:O(log₂n) 例:查找中核心思想:用哈希函数将关键字映射到存储位置 哈希冲突:不同关键字映射到同一位置 → 用链地址法或开放定址

36万+

STM32F103RCT6的FLASH读写操作

STM32F103RCT6是一款常用的32位微控制器,它具有内置的FLASH存储器,可以用于存储程序代码和数据。在本文中,我们将详细介绍如何进行STM32F103RCT6的FLASH读写操作,并提供相应的源代码。写入数据时,我们通过将数据直接写入FLASH地址来完成。通过使用适当的API和规则,我们可以有效地读取和写入数据。写入FLASH时,我们需要按特定的规则进行编程。首先,我们需要包含适当的头文件和定义相关的宏和变量,以便在代码中使用FLASH API。类型的指针,我们可以直接读取FLASH中的数据。

UplKubernetes的博客 1034

洛谷P2756 飞行员配对方案问题 网络流_二分图

洛谷P2756 飞行员配对方案问题 网络流_二分图 Code: #include&lt;cstdio&gt; #include&lt;queue&gt; #include&lt;vector&gt; #include&lt;cstring&gt; #include&lt;algorithm&gt; using namespace std; con...

EM LGH 197

【赛题解析&命令脚本配置】2023年全国职业院校技能大赛GZ073网络系统管理赛项赛题第9套模块A:网络构建 & (三)无线网络配置+(四)出口网络配置-命令配置

【赛题解析&命令脚本配置】2023年全国职业院校技能大赛GZ073网络系统管理赛项赛题第9套模块A:网络构建 & (三)无线网络配置+(四)出口网络配置-命令配置

君逍遥o 1018

洛谷 P2756——飞行员配对方案问题【二分图最大匹配问题 & 最大流Dinic算法】

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

NIRVANA REBIRTH 465

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

洛谷 P2756 飞行员配对方案问题

这题是二分图匹配,题目要求输出最大的配对数,以及配对方案。 学过网络流之后这题就可以写了,除了外籍飞行员和英国皇家飞行员之外,我们建立一个源点-- 0 和汇点-- n+1。 让源点连接外籍飞行员,建立一条边流量为1的边,然后建立反边。再给英国皇家飞行员连接上汇点,同样边的流量为1,反边流量为0。 这样的话网络流的图就建立好了,第一问求的最大匹配数,就是这个图的最大流。对于配对方案的话,一般的写法就...

XYQ BLOG 224

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

洛谷-2756 飞行员配对方案问题

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

mkopvec的博客 163

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

洛谷2756 飞行员配对方案问题

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

dizou7578的博客 152

【洛谷 2756】 飞行员配对方案问题

题目背景 第二次世界大战期间,英国皇家空军从沦陷国征募了大量外籍飞行员。由皇家空军派出的每一架飞机都需要配备在航行技能和语言上能互相配合的两名飞行员,其中一名是英国飞行员,另一名是外籍飞行员。在众多的飞行员中,每一名外籍飞行员都可以与其他若干名英国飞行员很好地配合。 题目描述 一共有 nnn 个飞行员,其中有 mmm 个外籍飞行员和 (n−m)(n - m)(n−m)个英国飞行员,外籍飞行员从 111 到 mmm 编号,英国飞行员从 m+1m+1m+1 到 nnn 编号。 对于给定的外籍飞行员与英国飞行员

在人间贩卖声音 155

洛谷2756飞行员配对方案问题

题目链接:飞行员配对方案问题 很多人把这题当做二分图匹配的模板做,匈牙利的时间复杂度为\(O(nm)\) 但是如果用dinic去做时间就会是\(O(\sqrt nm)\) 建立超级源点\(s\)和\(t\),直接按照输入连边,源点和汇点分别连向一个点集即可 #include<iostream> #include<string> #include<string...

adfa4535的博客 122

【洛谷2756】飞行员配对方案问题

题面 https://www.luogu.org/problem/P2756 题解 #include<cstdio> #include<cstring> #include<iostream> #include<vector> #include<queue> #define ri register int #...

weixin_30362233的博客 118

洛谷P2756 飞行员配对方案问题

原题传送门 题目背景 第二次世界大战时期.. 题目描述 英国皇家空军从沦陷国征募了大量外籍飞行员。由皇家空军派出的每一架飞机都需要配备在航行技能和语言上能互相配合的2 名飞行员,其中1 名是英国飞行员,另1名是外籍飞行员。在众多的飞行员中,每一名外籍飞行员都可以与其他若干名英国飞行员很好地配合。如何选择配对飞行的飞行员才能使一次派出最多的飞机。对于给定的外籍飞行员与英国飞行员的配合情况,试...

weixin_30484247的博客 114

[洛谷P2756]飞行员配对方案问题

题目链接: 点我 题目分析: 二分图匹配裸题,虽然是网络流24题,但其实我觉得要输出方案的话匈牙利更方便…… 外籍飞行员向皇家飞行员连边,最后输出答案时判一下,如果\(match[i]>0\)输出\(match[i],i\) 代码: #include<bits/stdc++.h> #define N 10000 using namespace std; inline ...

kma_093 120
上一篇: 洛谷_2032 扫描
下一篇: 洛谷_2055 假期的宿舍
nymph181
博客等级 码龄9年 40粉丝 458原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值