搜狗筆試 換獎品

2021-10-24 08:59:23 字數 953 閱讀 1157

4,4,2

輸出:說明:

可以拿乙個a道具和乙個b道具換乙個c道具,這樣最後每種

道具都有3個,最後可以換3個獎品

輸入9,3,3輸出4

說明可以拿兩個a道具換乙個b道具,再拿兩個a道具換乙個c道

具,這樣最後有5個a道具4個b道具4個c道具,最後可以換

4個獎品

1. 很容易找到乙個性質:假設我們能兌換k個獎品,那麼也一定可以兌換k-1個獎品。

2. 考慮二分這樣的k,問題轉換為判斷是否可以兌換出k個獎品。如果希望兌換k個獎品,那麼a、b、c三種商品至少需要2*k個。

3. 我們先計算出每類商品的冗餘個數,拿這些個數去補一下不夠的即可。

#include//三種商品,兩個可以換任意乙個,三個各乙個可以換乙個獎品,最多可以換多少獎品

using namespace std;

//二分法

/*1. 很容易找到乙個性質:假設我們能兌換k個獎品,那麼也一定可以兌換k-1個獎品。

2. 考慮二分這樣的k,問題轉換為判斷是否可以兌換出k個獎品。如果希望兌換k個獎品,那麼a、b、c三種商品至少需要2*k個。

3. 我們先計算出每類商品的冗餘個數,拿這些個數去補一下不夠的即可。

*/int numberofprize(int a, int b, int c);

while(low <= high)

else

}return ans;

}//暴力法

void fun(int & a, int & b, int & c)

if(a > c)

if(b > c)

}int numberofprize2(int a, int b, int c)

while(b > a && c > a)

return a;

}int main()

搜狗筆試題

乙個長度為n的陣列a 0 a 1 a n 1 現在更新陣列的名個元素,即a 0 變為a 1 到a n 1 的積 a 1 變為a 0 和a 2 到a n 1 的積,a n 1 為a 0 到a n 2 的積。程式要求 要求具有線性複雜度。不能使用除法運算子。演算法思想 設共有n個數 n 7 建立乙個陣列...

搜狗筆試題

1 下面 中for迴圈共執行了多少次?unsigned short i,j for i 0,j 2 i j i 5,j 7 unsigned short占用2個位元組,當資料範圍到頭了 2 16 1 就又從0開始計數了,這個其實就是兩輛汽車行駛在乙個圓圈裡的汽車追及問題。乙個速度為5,乙個速度為7,...

搜狗筆試題

搜狗 1,有n n個正方形格仔,每個格仔裡有正數或者0,從最左上角往最右下角走,只能向下和向右走。一共走兩次,把所有經過的格仔的數加起來,求最大值。且兩次如果經過同乙個格仔,則該格仔的數隻加一次。思路 搜尋 一共搜 2n 2 步,每一步有四種走法。考慮不相交等條件可以剪去很多枝。複雜度為o 4 n ...