巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,
规定每次至少取一个,最多取m个。最后取光者得胜。
我们举几个例子尝试后就能发现,当n整除m+1时,假设A拿x颗,B只要拿m+1-x颗,
这样就能保证每次拿完后石子数都能被m+1整除,这样当最后一次m+1时,无论A怎么拿,
B都能拿到最后一颗石子。
那么对于A而言,他的优势更大,只要n不能整除m+1,他只需要拿走多余的余数n%(m+1),
那么剩下的石子就能被m+1整除,
A、B的身份就对调了,他可以采取我们之前所分析的策略来拿到最后一颗石子。
因此,n%(m+1)=0时B获胜,其余时刻A获胜。
代码如下:
#include<stdio.h>
int main() {
int t , n , m ;
scanf("%d" , &t ) ;
while( t-- ) {
scanf("%d%d" , &n , &m ) ;
if( n%(m+1) == 0 ) printf("B\n") ;
else printf("A\n") ;
}
return 0 ;
}