hdu1079 博弈 奇偶规律

      给一个日期(年月日),两个人,每人轮流操作,每次可以加一月或者加一天,先到达11月4日的胜利..讨论月+日的奇偶性,因为11.4是一个奇状态,而且无论是月份+1还是日+1都会改变原来状态的奇偶性,所以奇状态一定是一个必胜态,偶状态必败,(跟年份好像没什么关系...)。另外有两个特殊的日期要考虑,9.30和11.30,这两个日期,天数+1的话,还是奇状态,月份+1的话变成偶状态,也就是说只要一个人到达了这两个日期,那么他想赢一定可以赢。所以必胜态就是偶状态+两个特殊日期。

#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
//    freopen("in.txt","r",stdin);
    int tt;
    cin>>tt;
    while(tt--)
    {
        int x,y,z;
        cin>>x>>y>>z;
        if ((y==9 && z==30) || (y==11 && z==30) ||((y+z)%2==0))
        {
            puts("YES");
        }
        else puts("NO");
    }
    return 0;
}


你可能感兴趣的:(hdu1079 博弈 奇偶规律)