description
有n個士兵站成一佇列, 現在需要選擇幾個士兵派去偵察。
為了選擇合適的士兵, 多次進行如下操作: 如果佇列超過三個士兵, 那麼去除掉所有站立位置為奇數的士兵,
或者是去除掉所有站立位置為偶數的士兵。直到不超過三個戰士,他們將被送去偵察。現要求統計按這樣的方法,
總共可能有多少種不同的正好三個士兵去偵察的士兵組合方案。
注: 按上法得到少於三士兵的情況不統計。
1 <= n <= 2的32次方-1
輸入格式
有多行,每行乙個數字n,最後一行是0
輸出格式
對每一行的數字n,輸出針對n的方案數
直到沒有數字
輸入樣例104
0輸出樣例20
每次去掉奇數或者偶數字置的士兵其實可以看作是每次將士兵平分為兩組(總數為奇數時有一組多一人),然後再繼續將分組後的士兵分組。。。
這裡面體現了分治的思想,我們只需要按照題目每次「平分」士兵直到每一組的士兵數<=3。然後統計士兵數等於3的組數即可。
#includeint soilder(int count);
int main()
}int soilder(int count)
}
演算法 使用單調佇列解決滑動視窗問題
給定乙個大小為n 106的陣列。有乙個大小為k的滑動視窗,它從陣列的最左邊移動到最右邊。您只能在視窗中看到k個數字。每次滑動視窗向右移動乙個位置。以下是乙個例子 該陣列為 1 3 1 3 5 3 6 7 k為3。視窗位置 最小值最大值 1 3 1 3 5 3 6 7 13 1 3 1 3 5 3 6...
php演算法 佇列
此佇列演算法中有兩個類乙個是data類,這個類是存放資料 第二個是queue也就是佇列類這個就是佇列的一些操作。首先佇列裡包含front 佇列的頭,也就是出隊是要出去的 rear 佇列的尾部在這裡永遠指向0 queue 存放所有入隊的data對像,queue中預設存在乙個元素當空時front和rea...
演算法筆記 佇列
是什麼 什麼是佇列 為什麼為什麼有佇列這種資料結構 怎麼學習佇列這種資料結構 順序佇列class arrayqueue 入隊 public boolean enqueue string item last last first first 0 queuelist last item last ret...