51nod 1067【简单博弈】

卧槽,第一次自己推推推做出来的。。。

对于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;
}


原文地址:https://www.cnblogs.com/keyboarder-zsq/p/6216780.html