目錄
數字拼湊問題
-
題目:兩個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