题目
思路
找规律。看下表。
首先如果开始数量为 一定是牛牛输,如果数量为
或
都是牛牛赢。
考虑数量为 牛牛只能可以取
或者
转移到牛妹必赢的状态。
和
可以转移到
,
可以转移到
、
、
。继续往下推可以发现只有
的倍数只能转移到一种必胜状态,因此如果数量是
的倍数就是牛妹必胜,否则牛牛必胜。
图片来自上海交通大学方泓杰前辈的课件。
Code
#include <cstdio> #include <cstring> #include <string> #include <iostream> #include <algorithm> int t, n; int main() { scanf("%d", &t); while(t--) { scanf("%d", &n); if (n % 3 == 0) puts("Frame"); else puts("Alan"); } return 0; }