有 1000 只水桶,其中有且只有一桶裝的含有毒藥,其餘裝的都是水。它們從外**起來都一樣。如果小豬喝了毒藥,它會在 15 分鐘內死去。
問題來了,如果需要你在一小時內,弄清楚哪只水桶含有毒藥,你最少需要多少只豬?
回答這個問題,並為下列的高階問題編寫乙個通用演算法。
高階:假設有 n 只水桶,豬飲水中毒後會在 m 分鐘內死亡,你需要多少豬(x)就能在 p 分鐘內找出 「有毒」 水桶?這 n 只水桶裡有且僅有乙隻有毒的桶。
可以允許小豬同時飲用任意數量的桶中的水,並且該過程不需要時間。
小豬喝完水後,必須有 m 分鐘的冷卻時間。在這段時間裡,只允許觀察,而不允許繼續飲水。
任何給定的桶都可以無限次取樣(無限數量的豬)。
思路:如果測試1輪 小豬有兩種情況 死:0 或 活:1
測試兩輪 小豬 第一輪死 :00 第二輪死 :10 第二輪活 11
3輪 000 100 110 111
可以看出測試幾輪就可以得到幾次方 那麼?的個數就為底數。
這道題真的是思路,看過就會了,忘了就蒙了。
class solution
return 0;
}};
最大值的單元測試
1.源程式 最大值的單元測試 仍有的錯誤 輸入的數,若不是整數,錯!using namespace std int largest int list,int length while length 0 length 10000 while length 0 while length 0 length...
int 最大值 239 滑動視窗最大值
給定乙個陣列 nums,有乙個大小為 k 的滑動視窗從陣列的最左側移動到陣列的最右側。你只可以看到在滑動視窗內的 k 個數字。滑動視窗每次只向右移動一位。返回滑動視窗中的最大值。示例 輸入 nums 1,3,1,3,5,3,6,7 和 k 3 輸出 3,3,5,5,6,7 解釋 滑動視窗的位置 最大...
算式最大值
演算法給定 1 n個正整數a1,a2,an 2 p個加號 和q個減號 p q n 1 3 k對括號 請你使用全部整數 加減號和括號,組成乙個合法的算式 a1 an在算式中的順序隨意 使得算式的結果最大。注意加減號只能作為二元運算子出現在算式中,不能作為正負號。括號可以出現在算式最左和最右,例如 1 ...