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\n");
        else
        {
            int op=month+day;
            if(op%2==0)
                printf("YES\n");
            else
                printf("NO\n");
        }
    }
    return 0;
}
View Code

 

posted @ 2017-01-12 11:39  声声醉如兰  阅读(125)  评论(0)    收藏  举报