取石子(六)
時間限制: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個剩...