HDU 1079 Calendar Game 博弈

题目大意:从1900年1月1日 — 2001年11月4日间选择一天为起点,两个人依次进行两种操作中的任意一种,当某人操作后为2001年11月4日时,该人获胜。问先手是否获胜

操作1:向后移一天

操作2:向后移一月

题目思路:设:op=month+day,除了9.30和11.30外无论进行哪一种操作都会改变op的奇偶性,而11+4=15所以起点为偶数(9.30,11.30除外)时先手胜,且先手此时可以避免对手选中9.30和11.30(因为后手总是面临奇数局面,先手可以避免选中9.29和11.29)。

题目代码

#include<stdio.h>
int main()
{
    int T,year,month,day;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%d%d",&year,&month,&day);
        if((month==9 || month==11) && day==30) printf("YES
");
        else
        {
            int op=month+day;
            if(op%2==0)
                printf("YES
");
            else
                printf("NO
");
        }
    }
    return 0;
}
View Code
原文地址:https://www.cnblogs.com/alan-W/p/6277519.html