石子遊戲 博弈論

2022-09-03 06:51:11 字數 844 閱讀 4538

有n

'>n

堆石子,兩人輪流取石子,每次可以將一堆全部拿走,也可以選擇其中y

'>y

個拿,但是要求y

'>y

與這堆石子的總個數互質。求誰會勝利。

明顯的博弈論之s

g'>sg

函式。 

我們可以發現,質數的s

g'>sg

值就等於上乙個質數的s

g'>sg

值加一,而合數的s

g'>

sg值就是它的最小質因子的s

g'>sg

值,所以,我們先預處理出所有質數(一遍 埃拉託斯特尼篩法 後順便求出每個數的s

g'>

sg值),再遍讀入遍異或,再判斷是0

'>0

是1'>

1即可。 

時間複雜度:o(t

n2)'>o(tn2),但是很多時間達不到n

2'>n2

,平均只有o(t

n)'>o(tn)

#include #include 

using

namespace

std;

const

int n=1000000

;int t,n,sg[n+50

],k,ans,x;

void find_prime() //

篩質數

return;}

intmain()

if (ans) printf("

alice\n");

else printf("

bob\n");

}return0;

}

Foreign 石子遊戲 博弈論

輸出t行,表示每組的答案。31 這顯然是一道博弈論的題目。我們發現這是乙個樹結構,仔細看了一下,發現這顯然是乙個階梯nim的模型。我們將所有和同n奇偶的值xor起來就可以得到sg。我們先判斷一下,若sg 0則顯然必敗,否則必勝。然後我們開始計算方案,列舉每乙個節點,目標顯然就是要讓sg 0。由於xo...

取石子 博弈論 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題解 從最簡單的情況推導,什麼情況下是...

博弈論 取石子問題

有一種很有意思的遊戲,就是有物體若干堆,可以是火柴棍或是圍棋子等等均可。兩個人輪流從堆中取物 體若干,規定最後取光物體者取勝。這是我國民間很古老的乙個遊戲,別看這遊戲極其簡單,卻蘊含著深 刻的數學原理。下面我們來分析一下要如何才能夠取勝。一 巴什博弈 bash game,同餘理論 只有一堆n個物品,...