有趣的演算法

2021-07-15 11:12:21 字數 2248 閱讀 1468

friday, july 22, 2016 19:50:50

a、b兩人分別在兩座島上。b生病了,a有b所需要的藥。c有一艘小船和乙個可以上鎖的箱子。c願意在a和b之間運東西,但東西只能放在箱子裡。只要箱子沒被上鎖,c都會偷走箱子裡的東西,不管箱子裡有什麼。如果a和b各自有一把鎖和只能開自己那把鎖的鑰匙,a應該如何把東西安全遞交給b?

答案:a

把藥放進箱子,用自己的鎖把箱子鎖上。

b拿到箱子後,再在箱子上加一把自己的鎖。箱子運回a後,

a取下自己的鎖。箱子再運到

b手中時,

b取下自己的鎖,獲得藥物。

演算法總結:同資料庫中的兩段鎖協議,上鎖階段,解鎖階段

這也給資訊傳輸啟迪作用

有乙個軟體公司,1/2的人是系統分析員,2/5的人是軟體工程師,有1/4的人兩者都是,問有多少人兩者都不是?

答案:看圖

演算法總結:畫圖最直接

有25匹馬,速度都不同,但每匹馬的速度都是定值。現在只有5條賽道,無法計時,即每賽一場最多只能知道5匹馬的相對快慢。問最少賽幾場可以找出25匹馬中速度最快的前3名?

答案:

25

匹馬分成

5組,這5

場比賽是免不了的

每一組的冠軍在一起賽一場就行了(第

6場)找到第一名

假設第六場比賽的1,

2,3分別來自

a,b,c

組中的冠軍,則

全場的,第一名為

a組第一,第二名,第三名要在,a組第

2,3,

b組第1,

2,c組第

3名中賽出來

所以一共要賽

7場最少找到1,

2,3名

考慮乙個雙人遊戲。遊戲在乙個圓桌上進行。每個遊戲者都有足夠多的硬幣。他們需要在桌子上輪流放置硬幣,每次必需且只能放置一枚硬幣,要求硬幣完全置於桌面內(不能有一部分懸在桌子外面),並且不能與原來放過的硬幣重疊。誰沒有地方放置新的硬幣,誰就輸了。遊戲的先行者還是後行者有必勝策略?這種策略是什麼?

答案:先行者在桌子中心放置一枚硬幣,以後的硬幣總是放在與後行者剛才放的地方相對稱的位置。這樣,只要後行者能放,先行者一定也有地方放。先行者必勝。

乙個矩形蛋糕,蛋糕內部有一塊矩形的空洞。只用一刀,如何將蛋糕切成大小相等的兩塊?

答案:注意到平分矩形面積的線都經過矩形的中心。過大矩形和空心矩形各自的中心畫一條線,這條線顯然把兩個矩形都分成了一半,它們的差當然也是相等的。

演算法題 有趣的數字

小q今天在上廁所時想到了這個問題 有n個數,兩兩組成二元組,差最小的有多少對呢?差最大呢?輸入描述 輸入包含多組測試資料。對於每組測試資料 n 本組測試資料有n個數 a1,a2 an 需要計算的資料 保證 1 n 100000,0 ai int max.輸出描述 對於每組資料,輸出兩個數,第乙個數表...

演算法題 有趣的排序

度度熊有乙個n個數的陣列,他想將陣列從小到大 排好序,但是萌萌的度度熊只會下面這個操作 任取陣列中的乙個數然後將它放置在陣列的最後乙個位置。問最少操作多少次可以使得陣列從小到大有序?輸入描述 首先輸入乙個正整數n,接下來的一行輸入n個整數。n 50,每個數的絕對值小於等於1000 輸出描述 輸出乙個...

有趣的演算法 撈魚問題

勇幸 thinking 話說這道題還是三年前徑點公司來學院筆試中的一道題目,當時剛進入實驗室,師兄在帶著我們做新生培訓的時候做過這道題,最近回顧dp的一些基礎,翻找以前寫的程式,發現了這道題,就貼一下,給出兩種方法的 並對比了它們在不同規模問題下的效率。題目 20個桶,每個桶中有10條魚,用網從每個...