题目传送门OvO
题目描述
游戏规则是这样的: 每次一个人可以对给出的数进行分割,将其割成两个非零自然数,之后由另一个人选择留下两个数中的其中一个;之后由另一个人进行分割这个剩下的数,重复步骤……
当一个人无法对数进行分割的时候游戏结束,另一个人获胜
现在要你求出N次游戏的胜败
每局由pb先进行分割,如果pb赢输出"pb wins" 如果zs赢输出"zs wins"
注:双方都是绝顶聪明的
输入输出格式
输入格式:
第一行一个数N,表示数据组数
之后N行,每行一个数M,表示每局初始的数
输出格式:
共N行,每行一串字符 表示游戏结果
博弈论裸题
首先讲解一下博弈:
博弈博弈,可以理解为打架
打架有三种状态:
要么,你赢了,把别人打的青一块紫一块;
要么,你输了,被别人打的青一块紫一块;
要么,你刚赢了/输了,别人反击/你反击别人;
那么,博弈论也差不多,有一个必胜点,也有一个必败点,还有一个局面转移
如果你走到了必胜点(戳中别人软穴,把他打趴在地),那么你必胜
如果你走到了必败点(被别人戳中软穴,被击倒在地),那么你必败
局面转移就是指你翻转了局面(如赢转输,输转赢)
说到这里,你会发现:博弈论其实是一种数论或者运筹学中的一种
那么我们就来分析一下这个题目啦!
稍加思考所知,显然 N = 1 N=1 N=1是必败态,因为按照题意"将其割成两个非零自然数",1无论怎么分割总有一个0,因此为必败态。
因此能够先手转移至 N = 1 N=1 N=1的状态为必胜态,否则为必败态。
对于N>1,由于"双方都是绝顶聪明的",因此双方都在设法转移至 N = 1 N=1