博弈 受限Nim遊戲

2022-05-12 08:23:14 字數 632 閱讀 1695

題目大意:有n(1<=n<=100)堆石子,每堆個數給定a1..an(1<=ai<=2,147,483,647),現有甲乙兩人輪流取石子,由甲開始,每次選一堆,取走一定數目石子,1到ai的一半取下整,如ai=5時,可取1或2,ai=6時,可取1或2或3,但ai=1不能取。不能取者負,求甲是否獲勝。假定每人都採取最優策略。

這是我第一道用sg來做的題目,先貼乙個鏈結,此人對sg的介紹非常好,至少我一遍看懂了,非常感謝。

在說這道題吧,我們可以非常容易地寫出sg函式表示式,sg(i)=mex ∈(1,i/2),然後我通過程式發現了乙個規律,對於乙個數x,它的sg函式值即為

f(x)/2,其中f(x)為x不停地除以2直到它為偶數為止。**挺短的,貼乙個。

1 #include2 #include3

using

namespace

std;

4long

long ans=0;5

intt;

6intn;7

intmain()822

if(ans)puts("

win");else puts("

lose");

23}24return0;

25}26

view code

博弈 Nim遊戲

nim遊戲是博弈論中最經典的模型,它又有著十分簡單的規則和無比優美的結論。nim遊戲是組合遊戲 combinatorial games 的一種,準確來說,屬於 impartial combinatorial games 以下簡稱icg 滿足以下條件的遊戲是icg 可能不太嚴謹 1 有兩名選手 2 兩...

NIM遊戲 博弈

1.尼姆博弈 n堆石子,每堆的數量a1,a2,a3.an,一方取完後石子個數為0則該方獲勝,問先手是否必勝 if ans a1 a2 a3 an 0 先手必勝 else 先手必輸 延伸1 在此問基礎上新增乙個集合,集合內的數字是每次操作可取的石子個數,每次從一堆中取,最後無法取者判輸 對每堆石子算得...

博弈 Nim遊戲

1069 nim遊戲 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 有n堆石子。a b兩個人輪流拿,a先拿。每次只能從一堆中取若干個,可將一堆全取走,但不可不取,拿到最後1顆石子的人獲勝。假設a b都非常聰明,拿石子的過程中不會出現失誤。給出n及每堆石子的數量,問最後誰...