牛牛爱博弈_牛客练习赛67

题目链接:https://ac.nowcoder.com/acm/contest/6885/C
题意

  • 取石子游戏。
  • 开始有n个石子,每次可以取1,2,4,8,……,2^k个石子,取完者获胜
思路
  • 画个表格,传递必败态
1 2 3 4 5
Y Y N Y Y
6 7 8 9 10
N Y Y N Y
  • n=1、2时,先手必赢。
  • n=3时,先手取1 2都输,必输
  • n=4时,先手取1,把必败态传给后手,先手必赢
  • n=5时,先手取2,把必败态传给后手,先手必赢
  • n=6时,先手取得数没有3的倍数,所以不能把必败态传给后手,后手反而可以将必败态传给先手,所以先手必输
  • ……
AC代码
#include #define ll long long using namespace std; int main(){ int T; scanf("%d",&T); while(T--){ int n; scanf("%d",&n); if(n%3==0)printf("Frame\n"); else printf("Alan\n"); } return 0; }

【牛牛爱博弈_牛客练习赛67】

    推荐阅读