每天一道演算法題 國王和囚犯

2021-06-12 06:06:02 字數 923 閱讀 6008

上一題真心優化不出了的說。。。tat。。。

話說還是最喜歡今天這樣的趣味智力題,雖然和演算法也沒什麼大關係噠,很適合消磨時間就是了~

題目來了~

國王招來100個囚犯,對他們說:你們犯的是死罪,但我給你們一次求生的機會。15分鐘以後,你們將被關進乙個有100間隔離牢房的監獄裡,每人一間牢房,都與外界隔絕,什麼也聽不見看不到,連時間都沒法計算,無法獲得外界的任何資訊。 

這所監獄有乙個院子,每天只少隨機(注意是完全隨機)開啟一間牢房的門,讓乙個囚犯到院子裡來放風。院子裡有一盞燈,放風的囚犯可以控制它的開關,將它開啟或是關閉。除囚犯之外,其他人都不會去碰開關。這盞燈會永遠有充足的能源**,燈泡和電路不會出故障。 

除了開關這盞燈,放風的囚犯放風時留下的任何其它痕跡都會在夜晚被清除乾淨(包括在燈上作的任何記號)。牢房是完全封閉的,院子裡的燈光在牢房裡看不到。只有放風到院子裡的人才能看到。 

好了現在我向你們提出乙個要求,只要你們做到了,就可以全部獲得釋放: 

給你們15分鐘商量你們的方案。15分鐘以後,你們將被關進我剛才說的那個監獄,永遠無法再交流,被關若干天後,你們中間如果任何乙個人能夠向我證明你們每個人都至少放風了一次,我就把你們放了,不然永遠別想再出來。 

好吧!這樣吧,如果你們有誰現在可以告訴我這個方法,也就是能夠證明你們每人至少放風一次的方法,我馬上放掉你們! 

其中乙個囚犯想了幾分鐘,回答了這個問題,國王聽後,如自己所說的把他們全部給放了。請問那個囚犯是用什麼方法證明的?

我一定是要被殺掉的囚犯啦。。。前兩天想著想著就睡著了,第三天才想出來

但是想出來的卻是很耗費時間的方法,不知有沒有更好的呢?

就是選定乙個人專門關燈,其他人每人要且只要開一次燈,僅當放風時燈是關著的而且自己從來開過燈時,開啟燈,選定的人看到燈開著就關燈。

關滿99次就說明其他人都放風過啦。

我想這個方法等大家放出來前都老了吧。。。>。<

每天一道演算法題

no.1 棧是特殊的線性表,它。a.對 b.錯答案 錯,它的插入和刪除都是在同一端進行的。no.2 n個葉子節點的滿二叉樹 除了葉子節點,每個節點都有兩個孩子 總共有多少個節點?a.2n 1 b.2n c.n 1 d.n答案 a 滿二叉樹我們講過了,度為0的節點比度為2的加點多乙個。滿二叉樹是特殊的...

每天一道演算法題

1.給定乙個只包括 的字串,判斷字串是否匹配。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。思路 正確思路 不需要考慮輸入內容是否合法,這只是做題,不是工程 定義乙個字典,後括號為鍵,前半部分為值 定義乙個元素儲存棧頂,注意這個設定,取棧...

每天一道演算法題

1 js計算某個字串出現的次數 j ascript計算乙個字串最多重複的字元及出現次數.var str zhaochucichuzuiduodezifu var o for var i 0,length str.length i length i else console.log o 輸出的是完整的...