取石子系列 四 取石子(六)(尼姆博弈)

2021-08-15 08:41:12 字數 976 閱讀 2204

取石子(六)

時間限制:1000 ms | 記憶體限制:65535 kb

難度:3

描述 最近topcoder的piaoyi和hrdv很無聊,於是就想了乙個遊戲,遊戲是這樣的:有n堆石子,兩個人輪流從其中某一堆中任意取走一定的石子,最後不能取的為輸家,注意: 每次只能從一堆取任意個,可以取完這堆,但不能不取。假設piaoyi先取石子,請你幫他判斷他是否能贏(假設他們取的過程中不發生失誤,他們足夠聰明)。

輸入 第一行輸入n,代表有n組測試資料(n<=10000)

以下每組測試資料報含兩行:第一行:包含乙個整數m,代表本組測試資料有m(m<=1000)堆石子;

:第二行:包含m個整數ai(ai<=100),分別代表第i堆石子的數量。

輸出 若piaoyi贏輸出「piaoyi」,否則輸出「hrdv」注意每組結果佔一行。。

樣例輸入

3 2

1 1

3 3 8 11

2 5 10

樣例輸出

hrdv

hrdv

piaoyi

** 原創

上傳者

tc_張友誼

單純的尼姆博弈,沒有很特別的地方。。。。

#include 

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

int main()

if(ans)

printf("piaoyi\n");

else

printf("hrdv\n");

}return

0;}

取石子遊戲之尼姆博弈

尼姆博弈 有三堆各若干個物品,兩個人輪流從某一堆取任意多的物品,規定每次至少取乙個,多者不限,最後取光者得勝 這種情況與二進位制有著很大的關係,我們用 a,b,c 來表示某種局勢,那麼 0,0,0 必然為奇異局勢,最後乙個面對這個局勢的必敗。0,n,n 也是種奇異局勢。因為如果對手在其中一堆取m個石...

取 m堆 石子遊戲(尼姆博弈)

description m堆石子,兩人輪流取.只能在1堆中取.取完者勝.先取者負輸出no.先取者勝輸出yes,然後輸出怎樣取子.例如5堆 5,7,8,9,10先取者勝,先取者第1次取時可以從有8個的那一堆取走7個剩下1個,也可以從有9個的中那一堆取走9個剩下0個,也可以從有10個的中那一堆取走7個剩...

取 m堆 石子遊戲(尼姆博弈)

description m堆石子,兩人輪流取.只能在1堆中取.取完者勝.先取者負輸出no.先取者勝輸出yes,然後輸出怎樣取子.例如5堆 5,7,8,9,10先取者勝,先取者第1次取時可以從有8個的那一堆取走7個剩下1個,也可以從有9個的中那一堆取走9個剩下0個,也可以從有10個的中那一堆取走7個剩...