51nod 1066 Bash游戏(简单博弈)

来源:互联网 发布:淘宝店铺装修招牌尺寸 编辑:程序博客网 时间:2024/06/10 15:10
取石子问题
有一堆n个石子,两人轮流取 ,每次可以取1..k个, 没得取的判负。

在游戏中,n不断变化,k是定值。


一个局面可以用当前的石子数n来表示:
n = 0 必败
n = 1..k都是必胜局面
n = k+1 是必败局面(为什么?)

n = k+2.. 2k+1 是必胜局面(为什么?)

...

n =2k+2都是必败局面

n = 2k+3..3k+2都是必胜局面

...


由此得出规律:先手的当前局面石子数n若为k+1的倍数,则必败。否则胜利。

.

#include <stdio.h>int main(){int t, n, k;scanf("%d", &t);while (t--){scanf("%d %d", &n, &k);if (n % (k + 1) == 0){printf("B\n");}else{printf("A\n");}}return 0;}

原创粉丝点击