版权声明:转载注明下出处就行了。 https://blog.csdn.net/LJD201724114126/article/details/83758427
题目链接:poj 2484
题意:给出n个顺时针排列的n枚硬币,每次只能取一个或者取相邻的两枚,Alice先取,问:谁取走最后一枚硬币?
题解:这题很gou,看看代码你就知道了。
///当n>=3时,Alice先拿,会把环拆成一条链,假如剩下奇数个硬币数,
///那么Bob只需在最中间拿走一个,把链拆成左右两条相等硬币数的链,
///接着Alice只能在其中一条链中取,那么Bob也很gou的在另一条链也取同样的硬币数
///最后的最后,Bob就win了。
///再假如剩下的硬币数为偶数,那么Bob就取走中间两个
///这题真是gou
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int main()
{
int n;
while(~scanf("%d",&n)&&n)
{
if(n>=3) printf("Bob\n");
else printf("Alice\n");
}
return 0;
}