題目: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...