兩個足夠聰明的人玩輪流取石頭的遊戲,誰取到最後乙個石頭誰就贏了,他們一次只能取1個、
3個、7個或
8個石頭,寫一程式判斷
n個石頭時先取的人是輸還是贏。
輸入格式:
多組輸入,乙個整數
n,其值不超過
10000000。
輸出格式:
如果先取的人贏,請以單獨一行輸出
1,否則輸出0。
輸入樣例
:
1輸出樣例10300
:
1 1經過計算發現,n在15以內時,只有當n = 2 4 6 15 時第二個人才會贏,其他情況都是第乙個人贏。0
當n大於15時,將n對15取餘,仍按照上述規則計算即可得出結果。
#include using namespace std;
/***
經過計算發現,n在15以內時,只有當n = 2 4 6 15 時第二個人才會贏
其他情況都是第乙個人贏。
當n大於15時,將n對15取餘,仍按照上述規則計算即可得出結果
***/
int main()
else
return 0;
}
參考:
1、2、
博弈論 取棋子遊戲
題目大意 有兩堆石子,各為 n m 個,甲乙兩人輪流取石子,每次可以從任意一堆裡取走任意多個石子,也可以從兩堆中取走相同數量的石子,但不能不取。取走最後乙個石子的人為贏家。給出初始狀態,問先手有無必勝策略。資料範圍 rqnoj 256 1 n m 10000。poj 1067 1 n m 1,000...
取石子 博弈論 Nim遊戲
題目大意 有n堆石子,第i堆有ai個。每次可以選擇乙個x,選擇乙個質數p滿足p x,選擇乙個0 y a x 然後將y個石子從x移動到x p。問先手有多少種第一步移動的測率能夠必勝?答案除以總方案數輸出。n 106,0 ai 109n 10 6,0 ai 10 9題解 從最簡單的情況推導,什麼情況下是...
魔法遊戲 博弈論
題目大意 給一顆樹,每個位置有乙個權值,每次乙個人可以選擇森林中的某棵樹的根節點,設其權值為a aa,那麼這個人可以選擇乙個k 2,a 1 k in 2,a 1 k 2,a 1 然後讓a aa變成 ak left lfloor frac ak right rfloor ka 如果乙個點權值變為0那麼...