牛客第五场
------------恢复内容开始------------
E
博弈:
n=1:胜
n=2:败n=2:败n=2:败,只能是自己拿一个,对方拿一个,然后GG
n=3:胜n=3:胜n=3:胜,自己拿一个,令对方到达n=2n=2n=2的必败点
n=4:败n=4:败n=4:败,如图红色箭头所指两种情况,都是必败状态
n=5:胜n=5:胜n=5:胜,拿 111 个,令对方到达n=4n=4n=4的必败点
n=6:胜n=6:胜n=6:胜,拿 222 个,令对方到达n=4n=4n=4的必败点
n=7:胜n=7:胜n=7:胜,拿 333 个,令对方到达n=4n=4n=4的必败点
n=8:败n=8:败n=8:败,无论怎么拿,都会达到对方的必胜点。
由此我们可以发现,若当前必败点为 xxx,距离下一个必败点的距离,就是 2x2x2x 位置
也就是必败点为:2,4,8,16,32,...,2n2,4,8,16,32,...,2^n2,4,8,16,32,...,2
正解:但凡是 2^n
都是后手赢
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long n;
scanf("%lld", &n);
long long tmp = 2;
for (int i = 1; i <= 60; i++)
{
if (tmp == n)
{
printf("Alice\n");
return 0;
}
tmp = tmp * 2;
}
printf("Bob\n");
return 0;
}
三分查找,简单题;
附上之前学习的,顺便贴到之前学习的链接:https://www.cnblogs.com/hgangang/p/11787734.html
------------恢复内容结束------------
浙公网安备 33010602011771号