Problem Description
One day, zbybr is playing a game with blankcqk, here are the rules of the game:
There is a circle of N stones, zbybr and blankcqk take turns taking the stones.
Each time, one player can choose to take one stone or take two adjacent stones.
You should notice that if there are 4 stones, and zbybr takes the 2nd, the 1st and 3rd stones are still not adjacent.
The winner is the one who takes the last stone.
Now, the game begins and zbybr moves first.
If both of them will play with the best strategy, can you tell me who will win the game?
Input
The first line of input contains an integer T, indicating the number of test cases (T≈100000).
For each case, there is a positive integer N (N ≤ 10^18).
Output
Output the name of the winner.
Example Input
2
1
2
Example Output
zbybr
zbybr
模拟一下过程发现n=3的时候先手输,n>3的时候最后都会变成n=3时的情况
#include <stdio.h>
#include <string.h>
int main()
{
int t;
long long int n;
scanf("%d",&t);
while(t--)
{
scanf("%lld",&n);
if(n<3)
printf("zbybr\n");
else
printf("blankcqk\n");
}
return 0;
}
本文介绍了一个简单的游戏策略问题,其中两名玩家轮流从一圈石头中取走石头,每次可以取一个或两个相邻的石头,最终取走最后一个石头的玩家获胜。通过分析,当石头数量为3时先手会输,否则先手将确保胜利。
862

被折叠的 条评论
为什么被折叠?



