51nod-1072 威佐夫游戏

发表于 博弈 分类,标签:
 有2堆石子。AB两个人轮流拿,A先拿。每次可以从一堆中取任意个或从2堆中取相同数量的石子,但不可不取。拿到最后1颗石子的人获胜。假设AB都非常聪明,拿石子的过程中不会出现失误。给出2堆石子的数量,问最后谁能赢得比赛。例如:2堆石子分别为3颗和5颗。那么不论A怎样拿,B都有对应的方法拿到最后1颗。Input第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 10000)第2 - T + 1行:每行2个数分别是2堆石子的数量,中间用空格分隔。(1 <= N <= 2000000)Output共T行,如果A获胜输出A,如果B获胜输出B。Input示例33 53 41 9Ou...

51nod-1070 Bash游戏 V4

发表于 博弈 分类,标签:
 有一堆石子共有N个。AB两个人轮流拿,A先拿。每次拿的数量最少1个,最多不超过对手上一次拿的数量的2倍(A第1次拿时要求不能全拿走)。拿到最后1颗石子的人获胜。假设AB都非常聪明,拿石子的过程中不会出现失误。给出N,问最后谁能赢得比赛。例如N=3。A只能拿1颗或2颗,所以B可以拿到最后1颗石子。Input第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 1000)第2 - T + 1行:每行1个数N。(1 <= N <= 10^9)Output共T行,如果A获胜输出A,如果B获胜输出B。Input示例3234Output示例BBA思路:从题意可以看出,n个石子,若先拿的人拿走大于或等...

51nod-1068 Bash游戏 V3

发表于 博弈 分类,标签:
 有一堆石子共有N个。AB两个人轮流拿,A先拿。每次拿的数量只能是2的正整数次幂,比如(1,2,4,8,16....),拿到最后1颗石子的人获胜。假设AB都非常聪明,拿石子的过程中不会出现失误。给出N,问最后谁能赢得比赛。例如N=3。A只能拿1颗或2颗,所以B可以拿到最后1颗石子。(输入的N可能为大数)Input第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 1000)第2 - T + 1行:每行1个数N。(1 <= N <= 10^1000)Output共T行,如果A获胜输出A,如果B获胜输出B。Input示例3234Output示例ABA思路:打表后可以看出若n能被3整除,则B获...

51nod-1066 Bash游戏

发表于 博弈 分类,标签:
 有一堆石子共有N个。AB两个人轮流拿,A先拿。每次最少拿1颗,最多拿K颗,拿到最后1颗石子的人获胜。假设AB都非常聪明,拿石子的过程中不会出现失误。给出N和K,问最后谁能赢得比赛。例如N=3,K=2。无论A如何拿,B都可以拿到最后1颗石子。Input第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 10000)第2 - T + 1行:每行2个数N,K。中间用空格分隔。(1 <= N,K <= 10^9)Output共T行,如果A获胜输出A,如果B获胜输出B。Input示例43 24 27 38 3Output示例BAAB思路:经典的...

51nod-1067 Bash游戏 V2

发表于 博弈 分类,标签:
 有一堆石子共有N个。AB两个人轮流拿,A先拿。每次只能拿1,3,4颗,拿到最后1颗石子的人获胜。假设AB都非常聪明,拿石子的过程中不会出现失误。给出N,问最后谁能赢得比赛。例如N=2。A只能拿1颗,所以B可以拿到最后1颗石子。Input第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 10000)第2 - T + 1行:每行1个数N。(1 <= N <= 10^9)Output共T行,如果A获胜输出A,如果B获胜输出B。Input示例3234Output示例BAA思路:打表后可以看出有明显的规律。代码:#include<iostream>#include<alg...

高僧斗法

发表于 博弈 分类,标签:
  问题描述  古时丧葬活动中经常请高僧做法事。仪式结束后,有时会有“高僧斗法”的趣味节目,以舒缓压抑的气氛。  节目大略步骤为:先用粮食(一般是稻米)在地上“画”出若干级台阶(表示N级浮屠)。又有若干小和尚随机地“站”在某个台阶上。最高一级台阶必须站人,其它任意。(如图1所示)  两位参加游戏的法师分别指挥某个小和尚向上走任意多级的台阶,但会被站在高级台阶上的小和尚阻挡,不能越过。两个小和尚也不能站在同一台阶,也不能向低级台阶移动。  两法师轮流发出指令,最后所有小和尚必然会都挤在高段台阶,再也不能向上移动。轮到哪个法师指挥时无法继续移动,则游戏结束,该法师认输。  对于已知的台阶数和小和尚的分布位置,请你计算先发指令的法师该如何决策才能保证胜出。输入格式  输入数据为一行用空格分开的N个整数,表示小和尚的位置。台阶序号从1算起,所以最后一个小和尚的位置即是台阶的总数...