飞行员

洛谷·[网络流24题]飞行员配对方案问题

谁说我不能喝 提交于 2020-02-05 23:56:18
初见安~这里是传送门: 洛谷P2756 飞行员配对方案问题 题解 是个比较明显的 网络最大流 吧。或者说是 二分图匹配求最大匹配数 。 构造二分图,一边是S连向外籍飞行员,一边是英国飞行员连向T,边权都是1,按照题目给的关系连边,边权INF,跑最大流就好。可以理解成每个外籍飞行员都有一个贡献,但是要选一个英国飞行员然后流向T。【那不就是二分图最大匹配。】所以用二分图也可以写的。这里就用网络流了,好写。 那么还有个问题就是要输出方案。简单啊,看每个外籍or英国飞行员向英国or外籍飞行员连的边的边权,正边看是否满流,逆边看是否有流,满足那么这两个配一架飞机。 上代码—— #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<queue> #define maxn 500 #define maxm 200005 using namespace std; typedef long long ll; const int INF = 0x3f3f3f3f; int read() { int x = 0, f = 1, ch = getchar(); while(!isdigit(ch)) {if(ch == '-') f = -1; ch =

匈牙利算法 - 二分图水题盛宴

南笙酒味 提交于 2020-01-17 01:07:04
每天刷洛谷,快活似神仙 水题1 P2756 飞行员配对方案问题 https://www.luogu.org/problem/show?pid=2756 . 背景 第二次世界大战时期.. 题目描述 英国皇家空军从沦陷国征募了大量外籍飞行员。由皇家空军派出的每一架飞机都需要配备在航行技能和语言上能互相配合的2 名飞行员,其中1 名是英国飞行员,另1名是外籍飞行员。在众多的飞行员中,每一名外籍飞行员都可以与其他若干名英国飞行员很好地配合。如何选择配对飞行的飞行员才能使一次派出最多的飞机。对于给定的外籍飞行员与英国飞行员的配合情况,试设计一个算法找出最佳飞行员配对方案,使皇家空军一次能派出最多的飞机。 对于给定的外籍飞行员与英国飞行员的配合情况,编程找出一个最佳飞行员配对方案,使皇家空军一次能派出最多的飞机。 输入 第 1 行有 2 个正整数 m 和 n。n 是皇家空军的飞行员总数(n<100);m 是外籍飞行员数(m<=n)。外籍飞行员编号为 1~m;英国飞行员编号为 m+1~n。 接下来每行有 2 个正整数 i 和 j,表示外籍飞行员 i 可以和英国飞行员 j 配合。最后以 2个-1 结束。 输出 第 1 行是最佳飞行员配对方案一次能派出的最多的飞机数 M。接下来 M 行是最佳飞行员配对方案。每行有 2个正整数 i 和 j,表示在最佳飞行员配对方案中,飞行员 i 和飞行员 j 配对

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

点点圈 提交于 2019-12-21 23:37:43
题目传送门 题目背景 第二次世界大战时期… 题目描述 英国皇家空军从沦陷国征募了大量外籍飞行员。由皇家空军派出的每一架飞机都需要配备在航行技能和语言上能互相配合的2 名飞行员,其中1 名是英国飞行员,另1名是外籍飞行员。在众多的飞行员中,每一名外籍飞行员都可以与其他若干名英国飞行员很好地配合。如何选择配对飞行的飞行员才能使一次派出最多的飞机。对于给定的外籍飞行员与英国飞行员的配合情况,试设计一个算法找出最佳飞行员配对方案,使皇家空军一次能派出最多的飞机。 对于给定的外籍飞行员与英国飞行员的配合情况,编程找出一个最佳飞行员配对方案,使皇家空军一次能派出最多的飞机。 输入格式 第 1 行有 2 个正整数 m 和 n。n 是皇家空军的飞行员总数(n<100);m 是外籍飞行员数(m<=n)。外籍飞行员编号为 1~m;英国飞行员编号为 m+1~n。 接下来每行有 2 个正整数 i 和 j,表示外籍飞行员 i 可以和英国飞行员 j 配合。最后以 2个-1 结束。 输出格式 第 1 行是最佳飞行员配对方案一次能派出的最多的飞机数 M。接下来 M 行是最佳飞行员配对方案。每行有 2个正整数 i 和 j,表示在最佳飞行员配对方案中,飞行员 i 和飞行员 j 配对。如果所求的最佳飞行员配对方案不存在,则输出‘No Solution!’。 输入 5 10 1 7 1 8 2 6 2 9 2 10 3

空难与软件开发(一)

一笑奈何 提交于 2019-11-29 16:10:51
我并不是嗜好灾难片电影或者纪录片的。但是偶然的机会看了一两集Air Crash Investigation,便被其深深吸引了。因为这些事故,和我们日常进行的软件开发是如此的相似,有一些今天广泛提倡的Best Practice实际上早就提出几十年了。于是突发奇想,干脆总结总结。这是第一篇。 美航1420次班机空难 1996年6月1日,一架MD-82飞机从美国达拉斯飞往小石城。在接近小石城机场时,机组人员接到雷暴警告。飞机在恶劣天气下从4R跑道进行进近,着陆之后,飞机冲出跑道,以高速撞向跑道尽头的引进灯,断裂为3截并起火,飞机机长和10名乘客遇难。 在所有的飞机空难事件中,不论事故的起因如何,总能从最终调查结果中发现,事故是一连串(有时甚至非常巧合的)相关因素(天气因素,人为因素或者机械因素)交替出现的结果。此次事件也不例外。这件事故发生的前后的时间流水账如下: 背景: (1)在现代航空运营中,航空公司和机组人员面临这空前压力。效率与准时称为航空公司力保的因素。基层的签派员,驾驶员等必须全力以赴才能够完成任务并获得盈利。航空公司尽量保证签派计划不变但是有一项因素无法控制:那就是天气。而航空公司为了保证计划,不惜和天气赛跑,赶在风暴来临之前进行飞行和降落。 流水账 (2)1996年6月1日。美国1420班机在达拉斯机场准备起飞,由于风暴来临,班机已经延误。 (3)航空人员压力越来越大