一道关于飞机加油的问题

问题描述如下

每个飞机只有一个油箱,

飞机之间可以相互加油(注意是相互,没有加油机)

一箱油可供一架飞机绕地球飞半圈,

问题:

为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?

(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)

问题思考:1 飞机可以返航,

2 地球是圆的。

从一个方向飞,肯定无法满足要求。所以有从相反方向飞。

3架飞机5架次,

飞法:ABC 3架同时起飞,1/8处,C给AB加满油,C返航,1/4处,B给A加满油,B返航,A到达3/4处,C从机场往另一方向起飞,3/4处,C同已经空油箱的A平分剩余油量,同时B从机场起飞,AC到7/8处同B平分剩余油量,刚好3架飞机同时返航。所

以是3架飞机5架次。

一道关于飞机加油的问题

时间: 2024-10-12 18:50:38

一道关于飞机加油的问题的相关文章

算法笔试

1.把二元查找树转变成排序的双向链表 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表.要求不能创建任何新的结点,只调整指针的指向.   10  / \  6  14 / \ / \4  8 12 16 转换成双向链表4=6=8=10=12=14=16.  首先我们定义的二元查找树 节点的数据结构如下: struct BSTreeNode{  int m_nValue; // value of node  BSTreeNode *m_pLeft; // left child of

算法1

1.把二元查找树转变成排序的双向链表 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表.要求不能创建任何新的结点,只调整指针的指向.   10  / \  6  14 / \ / \4  8 12 16 转换成双向链表4=6=8=10=12=14=16.  首先我们定义的二元查找树 节点的数据结构如下: struct BSTreeNode{  int m_nValue; // value of node  BSTreeNode *m_pLeft; // left child of

十道智力题(三)

第一题 第一题比较简单,两边可以组成中间图像,选:H 第二题 小红和小蓝都是李老师的学生,李老师的生日是M月D日,是下列10组中的一天,李老师把M值告诉了小红,把D值告诉了小蓝,通过小红和小蓝的对话你能知道李老师的生日是哪一天吗?请根据以下对话推断出李老师的生日是哪一天( )小红说:如果我不知道的话,小蓝肯定也不知道小蓝说:本来我也不知道,但是现在我知道了小红说:哦,那我也知道了 3月4日 3月5日 3月8日 6月4日 6月7日 9月1日 9月5日 12月1日 12月2日 12月8日 第三题 一

(转)面试算法总结

1.把二元查找树转变成排序的双向链表 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表.要求不能创建任何新的结点,只调整指针的指向.   10  / \  6  14 / \ / \4  8 12 16 转换成双向链表4=6=8=10=12=14=16.  首先我们定义的二元查找树 节点的数据结构如下: struct BSTreeNode{  int m_nValue; // value of node  BSTreeNode *m_pLeft; // left child of

微软等数据结构+算法面试100题全部答案集锦

1.把二元查找树转变成排序的双向链表. 题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表. 要求不能创建任何新的结点,只调整指针的指向. 10  / \  6 14  / \ / \  4 8 12 16 转换成双向链表 4=6=8=10=12=14=16. 首先我们定义的二元查找树节点的数据结构如下: struct BSTreeNode  {  int m_nValue; // value of node  BSTreeNode *m_pLeft; // left child

笔试算法题

转自:http://www.cnblogs.com/xwdreamer/archive/2011/12/13/2296910.html 1.把二元查找树转变成排序的双向链表 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表.要求不能创建任何新的结点,只调整指针的指向.   10  / \  6  14 / \ / \4  8 12 16 转换成双向链表4=6=8=10=12=14=16.  首先我们定义的二元查找树 节点的数据结构如下: struct BSTreeNode{  i

关于js数组的一道小考题

网上看到的一道关于js数组的小考题,借此学习练习一下,也是拿来作为博客开篇之作吧! 题目如下: 给定一个随机数组,数组可能包含数组(也就是说数组元素可能为数组).要求用js实现一个函数,返回该数组中所有元素,重复的要求去掉.例如:数组[2,3,[4,6,[3,8]],12,10],返回结果为:[2,3,4,6,8,12,10]. 我的答案如下:(额外增加了排序) 1 var arr = [2,3,[4,6,[3,8,[15,16,[17,18,[1,2,3,[19,20]]]]],[13,14]

一道SQL的面试题之联想

一道SQL的面试题之联想 本人工作在一家小型的民营企业,主要从事业务系统的日常维护,二次开发,菜鸟一枚.周五经理准备面试两个开发人员,据简历,都还比较不错,让经理产生了想法,于是准备了一套面试题目,给我们亮了一道SQL题目,非他之手,据出此题者说,如果面试者只能写出一种方法,基本可以pass.请读者仔细看题: 题目:如下表,用一条select语句求出所有课程在80分(含80分)以上的学生姓名,请写出所有可行方案.(注意:表名为sc,字段为name,kc,score) 这道题目并不陌生吧,相信大家

关于定义顺序和内存分配的关系--记一道不严谨的C语言题

include<stdio.h> #include<iostream> int main() { char a[] = "123"; char b[] = "abcd"; if (a > b) { printf("a>b \n"); } else printf("a<b\n"); printf("%p\n %p\n", a, b); system("pau