/*
网上看来的想法,通过分析和找规律来确定必胜必败。
依据月份和日期和的奇偶性。
不论月份加一,还是日期加一,都改变了奇偶性。只有月末加一天可能不改变奇偶性。
1.31——2.1 偶--奇
2.28——3.1 偶--偶 (可以选择2.28--3.28偶--奇)
(2.29——3.1) 奇--偶
3.31——4.1 偶--奇
4.30——5.1 偶--偶(可以选择4.30--5.30偶--奇)
5.31——6.1 偶--奇()
6.30--7.1 偶--偶 (可以选择6.30--7.30偶--奇)
7.31--8.1 偶--奇
8.31--9.1 奇--偶
9.30--10.1 奇--奇(9.30--10.30奇--偶)
10.31--11.1 奇--偶
11.30--12.1 奇--奇
12.31--1.1 奇--偶
//综上
偶数必胜,奇数必败。
除了9.30,10.1.
所有的偶数(必胜态)都可以经过一步变换到对方的奇数(必败态)
如果偶数,一定不会变换到对方的偶数(必胜态)
作为先手,不会主动进入特殊日期,而后者不可能从奇数依旧到达特殊日期的奇数。
而除了9.30 11.30,奇数只能变换到对方的偶数(必胜态),
所以只要判断奇偶性和特殊日期即可。
自己一开始写的普通的递推:
网上看来的想法,通过分析和找规律来确定必胜必败。
依据月份和日期和的奇偶性。
不论月份加一,还是日期加一,都改变了奇偶性。只有月末加一天可能不改变奇偶性。
1.31——2.1 偶--奇
2.28——3.1 偶--偶 (可以选择2.28--3.28偶--奇)
(2.29——3.1) 奇--偶
3.31——4.1 偶--奇
4.30——5.1 偶--偶(可以选择4.30--5.30偶--奇)
5.31——6.1 偶--奇()
6.30--7.1 偶--偶 (可以选择6.30--7.30偶--奇)
7.31--8.1 偶--奇
8.31--9.1 奇--偶
9.30--10.1 奇--奇(9.30--10.30奇--偶)
10.31--11.1 奇--偶
11.30--12.1 奇--奇
12.31--1.1 奇--偶
//综上
偶数必胜,奇数必败。
除了9.30,10.1.
所有的偶数(必胜态)都可以经过一步变换到对方的奇数(必败态)
如果偶数,一定不会变换到对方的偶数(必胜态)
作为先手,不会主动进入特殊日期,而后者不可能从奇数依旧到达特殊日期的奇数。
而除了9.30 11.30,奇数只能变换到对方的偶数(必胜态),
所以只要判断奇偶性和特殊日期即可。
*/
/*hdu 1079*/
/*2014.11.3*/
/*Ouc_Sky*/
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
int year,month,day , t;
scanf("%d",&t);
while(t--)
{
scanf("%d%d%d",&year,&month,&day);
if((month+day)%2==0 || month==9 && day==30 || month==11 && day==30) printf("YES\n");
else printf("NO\n");
}
return 0;
}
自己一开始写的普通的递推: