目录
数字拼凑问题
-
题目:两个4,两个10,利用加减乘除怎么最后获得24
- 正规方法:(10×10-4)÷4=24
- 投机取巧:44-10-10=24
上山下山问题
-
题目:
- 上山(早8晚8)下山(早8晚8),问会不会两天的同一时间出如今同一地点
-
分析:
- 解答:解:存在一个地点,此人在上山过程当中到达该点的时刻与下山过程当中到达该地点的时刻相同.
- 能够从函数图象的角度理解.好比令横轴为时间(早晨8点到傍晚7点),令竖轴为从山下到山上的路程.这样咱们就能够在平面直角坐标系上框出一个长方形范围.则第一天他的图象能够理解为从左下角(从起点上山)不规则地向右上角(山顶)延伸(即随时间推移他从山下往山上走).而次日他的行程能够理解为从左上角(从山顶下山)不规则地向右下角延伸.这样的话这两天的图象必然会有相交的地方,那么交点的意义就是他在这两天的这个同一时刻在路程中的同一个地方,据此便可解答.
称重找不一样问题
-
题目:
- 10个堆,每堆10个苹果,其中9个堆里苹果是50g/个,一个堆里苹果是40g/个,有一杆秤只能称一次,所称重量为x,求40g苹果所在堆。
-
分析:
- 将堆编码为1-10;而后每堆拿出k个,最后少了k*10克,则知道是第几堆的苹果。
-
题目:
- 八个球,其中有一个是其他球重量的1.5倍,有什么方案找出来
-
分析:
- 分为3+3+2 三组
- 先称3和3的两组,找出多的一边继续分为三组,用相同方法称;
- 若是3和3的两组相等,则目标在剩余两个球中,将这两个球称一下就能够找出目标了。
- 最慢3次,最快1次(即任取两个球,称,看运气)
水桶分水问题
-
题目:
-
分析:
- 一、6L的水桶装满水,倒满5L的桶。 二、将5L桶里的水倒了,将6L桶里剩余的1L放入5L桶。 三、6L的桶装满水,倒满5L桶里,6L桶里还剩2L(6-4)水。 四、 将5L桶里的水倒了,将6L桶里剩余的2L水放入5L桶里。 五、将6L桶装满水,倒满5L的桶,这时6L的桶里还剩3L水。
-
题目:
-
分析:
- 4分钟的和7分钟的同时开始,4分钟的完后又倒过来开始。7分钟的沙漏完后立马倒过来,(4分钟的沙漏还剩1分钟)。等4分钟的沙漏完后,将7分钟的又立马倒过来,等漏完就是9分钟。
- 注:4分钟两次,一共8分钟;差值创造的1分钟最后漏回7分钟沙漏里,一共9分钟。
两头点燃计时问题
-
题目:
-
分析:
- 同时点燃AB两只蚊香,其中A蚊香点燃两头,等A蚊香烧完后(30分钟),点燃B蚊香的另外一头。
顺序拿最后取胜问题
-
题目:
- 桌上100个球,每次能够拿一到五个, 如今咱们两我的依次拿球,你先拿,使用怎样的拿球策略,可使你最终能拿到最后一个球?
-
分析:
- 两人一组,可控一次拿6个球,100整除6,取余4,所以能够先拿4个球,剩余的数量是6的整数倍。
- 第一次拿四个,后来每一个你拿球的时候只要保证剩下的球是6的倍数就好了若是他拿n个球 ,你就拿6-n个球。
-
题目:
- 有10个石头,每人每次能够拿1-2个,轮流拿,最后一个拿的人算输,有什么必赢的方案。
-
分析:
- 两人一组,可控一次拿3个石头。10整除3,取余1,所以去掉余数1个,剩余数量是3的整数倍。
- 对方先拿、保证两我的每一轮回拿满3个(对方拿一个,我拿两个、对方拿两个,我拿一个)。
- 注:本题是上一个题的逆向,即先保证拿完整数倍,剩余1个(余数是别的就不行了),对面只能拿,所以会输。
大数据量取最值问题
-
题目:
-
分析:
- 小根堆的思想:
- 把一亿个数字的前100个 首先放入数组,而后把最小值放在ary[0]。
- 而后再循环100到一亿之间的。每次循环判断当前数字是否大于ary[0],当大于时,当前数字放入ary[0],并再次重构数组最小值进入ary[0]以此类推 。
- 当循环完这一亿个数字后,最大的前100个数字就出来了。
飞机加油问题
-
- 每一个飞机只有一个油箱,飞机之间能够相互加油,注意是相互,没有加油机,一箱油可供一架飞机绕地球飞半圈。
- 问题:
- 为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少须要出动几架飞机?
- A:全部飞机从同一机场起飞,并且必须安全返回机场,不容许中途降落,中间没有飞机场
- B:全部飞机从同一机场,同一方向起飞,并且必须安全返回机场,不容许中途降落,中间没有飞机场
-
分析:
- 至少须要三架飞机。(两架飞机是显然不可能的,这个都不用说什么)。前提假设固然是:加油、掉头、降落和起飞的时间分别是0。
- 一架飞机=半圈,一直向前;加油机交替折返,相互加油;目标机飞过半圈以后,加油机从相反的方向去接。
-
- 三架飞机同时从机场O起飞,方向为顺时针,此时三架飞机的油量分别是:A: 1, B: 1, C: 1。

-
- 当A飞行至半圈的1/4位置时,此时飞机的油量分别是:A: 3/4, B: 3/4, C: 3/4。此时C分别给A和B加满油,三架飞机当前油量分别是:A: 1, B: 1, C: 1/4。C返回机场。A、B继续向前飞行

-
- 当A飞行至半圈的1/2位置时,此时C已经返回机场,三家飞机此时油量分别是:A: 3/4, B: 3/4, C: 0。此时B给A加满油,C加满油,此时三架飞机的油量分别是:A: 1, B: 1/2, C: 1。而后B返回机场,A继续向前飞行。

-
- 当A飞行至半圈位置时,B已经返回机场而且加满了油(假设加油时间为0),此时,B和C沿逆时针方向飞行,三架飞机当前油量分别是:A: 1/2, B: 1, C: 1。A继续向前飞行。

-
- 当A飞行至另外半圈的1/4位置时,三架飞机剩余油量分别是:A: 1/4, B: 3/4, C: 3/4。此时,C给B加满油。此时三架飞机油量分别是:A: 1/4, B: 1, C: 1/2。C返回机场,B和A继续向前飞行。

-
- 当A飞行至另外半圈的1/2位置时,C已经返回机场,A和B相遇,此时三架飞机剩余油量分别是:A: 0, B: 3/4, C: 0。B给A加1/4的油,三架飞机剩余油量:A: 1/4, B: 1/2, C: 1。C加满油从机场逆时针飞出,B返回机场,A继续向前飞行。

-
- 当A飞行至另外半圈的3/4位置时,A和C相遇。此时三架飞机的油量分别是:A: 0, B: 1/4, C: 3/4。C给A加1/4的油,此时三架飞机的油量分别是:A: 1/4, B: 1/4, C: 1/2。C掉头返回机场,A和B继续向前飞行。

-
- 三架飞机顺利回到机场!

-
题目
- 有一栋楼共100层,一个鸡蛋从第N层及以上的楼层落下来会摔破, 在第N层如下的楼层落下不会摔破。给你2个鸡蛋,设计方案找出N,而且保证在最坏状况下, 最小化鸡蛋下落的次数。
-
分析
- 暴力法;二分;均分;非均分;
- x + (x-1) + (x-2) + ... + 1 >= 100
- x=14
- 即我先用第1个鸡蛋在如下序列表示的楼层数不断地向上测试,直到它摔破。 再用第2个鸡蛋从上一个没摔破的序列数的下一层开始,向上测试, 便可保证在最坏状况下也只须要测试14次,就能用2个鸡蛋找出从哪一层开始, 往下扔鸡蛋,鸡蛋就会摔破。
- 14, 27, 39, 50, 60, 69, 77, 84, 90, 95, 99, 100
- 代码:dp类
循环赛根据比赛局数推导第二场输家的问题
-
问题
- 甲乙丙三人,两两比赛,一人等待,获胜的人和等待的人进行比赛,输了的人下一局等待;
- 最终甲17场,乙15场,丙10场。
- 问第二局谁赢了?
-
分析
- 设ABC三人,A=17, B=15, C=10
- A=17, 所以AB+AC=17;
- B=15, 所以AB+BC=15;
- C=10, 所以AC+BC=10;
- 求和得(AB+BC+AC)=21,代入上面三个式子,可得AB, BC, AC三个值
- A=17, 所以A不在的场次由剩余的B和C两人比赛,即BC=4;
- 同理,B=15, 所以AC=6; C=10, 所以AB=11
- 综上,AB=11, 而AC+BC=10,又由于比赛规则,相同的比赛人员不能相邻,所以要在11个AB中插空插入剩余的10场比赛;
- 所以,第一场和第三场都是AB,而第二场多是AC,也多是BC,没法肯定;
- 所以,第二场由C上场,与第一场的赢家比赛,而后输了比赛,第三场又由第二场的赢家与剩余的人比赛,即AB。
- 答:第二局最终场最少的人输了比赛,剩余两人中的某一人赢了比赛。
小老鼠喝毒药/快速核酸检测问题
-
小老鼠喝毒药问题:
- 有 1000 个如出一辙的瓶子,其中有 999 瓶是普通的水,有一瓶是毒药。任何喝下毒药的生物都会在一星期以后死亡。如今,你只有 10 只小白鼠和一星期的时间,如何检验出哪一个瓶子里有毒药?
- 若是你有两个星期的时间(换句话说你能够作两轮实验),为了从 1000 个瓶子中找出毒药,你最少须要几只老鼠?注意,在第一轮实验中死掉的老鼠,就没法继续参与第二次实验了。
-
分析:
- 此类问题,用二进制模拟十进制数,而后一次找出结果。
- 也能够用二分,但二分和二进制模拟十进制本质是同样的,好比100之内猜数字,最多7次。
- 二进制模拟更快,一步到位。
-
一次检测出的分析:
-
把瓶子从 0 到 999 依次编号,而后所有转换为 10 位二进制数。让第一只老鼠喝掉全部二进制数右起第一位是 1 的瓶子,让第二只老鼠喝掉全部二进制数右起第二位是 1 的瓶子,等等。一星期后,若是第一只老鼠死了,就知道毒药瓶子的二进制编号中,右起第一位是 1 ;若是第二只老鼠没死,就知道毒药瓶子的二进制编号中,右起第二位是 0 ……每只老鼠的死活都能肯定出 10 位二进制数的其中一位,由此即可知道毒药瓶子的编号了。html
-
一共有1000瓶,2的10次方是1024,恰好大于1000,也就是说,1000瓶药品可使用10位二进制数就能够表示。从第一个开始:数组
第一瓶 : 00 0000 0001
第二瓶: 00 0000 0010
第三瓶: 00 0000 0011
……
第999瓶: 11 1111 0010
第1000瓶: 11 1111 0011
END