卧槽,第一次自己推推推做出来的。。。
对于1,那么就是A取完就好 --A
对于2,只能是A拿一个 --B
对于3和4,都是A拿完 --A
对于5,靠向2,A取3,B只能1 --A
对于6,A取一个的话,B就是5的情况,B赢,取3个的话,B就是3的情况,B赢,取4个的话,B就是2的情况,A赢,所以A;
对于7,A取一个的话,B就是6的情况,B赢,取3个的话,B就是4的情况,B赢,取4个的话,B就是3的情况,B赢,所以B;
以此类推,对于A取多少个,对于B来说总是有之前的方案对应;
discuss里面有人打表找规律。。。不会打表。。。。
#include<cstdio> #include<math.h> #include<queue> #include<map> #include<string> #include<string.h> #include<iostream> #include<algorithm> using namespace std; typedef __int64 LL; const double PI=2*acos(0.0); const int INF=0x3f3f3f3f; const LL mod=1e9+7; int main() { int n; int T; scanf("%d",&T); while(T--) { scanf("%d",&n); n=n%7; if(!n||n==2) puts("B"); else puts("A"); } return 0; }