近期遇到兩個邏輯題,感覺有點好玩,發上來以作記錄。
1、給定9個球,其中乙個質量比其他8個球要輕(或者重),給定乙個天平,問最少幾次可以把這個輕球找出來。
2、給定一組大小長短不一的樂高積木,以及乙個天平,如何把這組樂高積木按照重量從輕到重排列出來。
第一題,只要把9個球分成3組,兩組先比較,重量輕的一組,必然包含了輕球。再對這組的三個球,抽取兩個,如果相等,必然是第三個球,否則輕者就是輕球。
第二題,實際上是氣泡排序的樂高版實現。第一輪先通過兩兩比較,得到n個中最輕的,然後在剩下的n-1個中,再找最輕的。通過這種思路,逐漸排列好。這種特別適合教小孩做不插電程式設計,主要鍛鍊邏輯思維。
兩個分塊題
題目一 給出乙個長為 n 的數列,以及 n個操作,操作涉及區間加法,詢問區間內小於某個值 x的元素個數。分析 將數列分成sqrt n 塊,每塊維護乙個懶惰標記 乙個有序表 vector實現 即可。操作的時候,先暴力處理左右兩端不完整的塊,再處理中間完整的塊,注意懶惰標記的釋放。區間加法o n 詢問區...
兩個推理題
一 5位運動員參加了10公尺臺跳水比賽,有人讓他們 比賽結果 a選手說 b第二,我第三 b選手說 我第二,e第四 c選手說 我第一,d第二 d選手說 c最後,我第三 e選手說 我第四,a第一 比賽結束後,每位選手都說對了一半,請程式設計確定比賽的名次。首先的判斷條件為名次,名次為1 5 在通過題目中...
討論兩個演算法題
以下兩個問題假設自ram模型。在該模型下,我們可以在常量時間內執行兩個o log n 位整數的邏輯和算術運算,並且還可以在常量時間內讀取 寫入任何記憶體位址的連續o logn 位。問題一 給定隨機0 1序列b 0,n 1 即對於0 i n 1,b i 0或1。求解以下問題 1.設計資料結構和演算法,...