洛谷 P1288 取數遊戲II 題解

2021-10-01 23:06:34 字數 732 閱讀 3123

題目:p1288 取數遊戲ii

博弈論 - 數論

我們可以把這個環想象成兩條路,如果路的盡頭沒有邊權為 0

00 的邊,那麼兩條路徑就是一樣的。

對於一條路徑,設 ali

ce

alice

alic

e 為先手,那麼她將她走過的路徑邊權變為 0

00。輪到 bob

bobbo

b 時,他最多也只能有一條路可以走。如果他選擇不將該路邊權變為 0

00,下一步 ali

ce

alice

alic

e 一折返他就輸了。如果他將邊權變為 0

00,那麼就變成重複以上操作了

最後如果路徑長度為奇數,ali

ce

alice

alic

e 還是贏;路徑長為偶數的話 ali

ce

alice

alic

e 就沒有必勝策略

這樣這題就被轉化成判斷兩條路徑奇偶性了

#include

#include

using

namespace std;

const

int maxn=30;

int a[maxn]

,n;int ans,tot;

// 儲存兩條路長度

intmain()

洛谷 P1288 取數遊戲II

有乙個取數的遊戲。初始時,給出乙個環,環上的每條邊上都有乙個非負整數。這些整數中至少有乙個0。然後,將一枚硬幣放在環上的乙個節點上。兩個玩家就是以這個放硬幣的節點為起點開始這個遊戲,兩人輪流取數,取數的規則如下 1 選擇硬幣左邊或者右邊的一條邊,並且邊上的數非0 2 將這條邊上的數減至任意乙個非負整...

洛谷P1288 取數遊戲II

有乙個取數的遊戲。初始時,給出乙個環,環上的每條邊上都有乙個非負整數。這些整數中至少有乙個0。然後,將一枚硬幣放在環上的乙個節點上。兩個玩家就是以這個放硬幣的節點為起點開始這個遊戲,兩人輪流取數,取數的規則如下 1 選擇硬幣左邊或者右邊的一條邊,並且邊上的數非0 2 將這條邊上的數減至任意乙個非負整...

洛谷 P1288 取數遊戲II

題意 中文題面不贅述啦。題解 很好寫,其實就是判斷邊數是否為偶數。先手確定方向其實都是一樣的,但是起手肯定要先選完,不能給後手留棋子使他向反方向走。如果是偶數邊先手可以掌控局面。1 include 2 include 3 include 4 include 5 using namespace std...