HDU 1079 Calendar Game 博弈

时间:2021-09-28 19:27:31

题目大意:从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== || month==) && day==) printf("YES\n");
else
{
int op=month+day;
if(op%==)
printf("YES\n");
else
printf("NO\n");
}
}
return ;
}