参考了别人的算法,数学果然是王道!

2001.11.4的 月+日= 11 + 4 = 奇数。。

由于无论是月加一还是日加一月日和的奇偶性都会发生变化, 除了2.28、9.30和11.30.

2.28、9.30、11.30明显有必胜的策略:

2.28->3.28,

9.30->10.1,

11.30->12.1

所以除了剩余的两个特殊的情况以外,其余只要满足月+日等于偶数就有必胜的策略。



 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     int N;
 8     cin >> N;
 9     for (int i = 0;i < N; i++)
10     {
11         int yy,mm,dd;
12         cin >> yy >> mm >> dd;
13         bool flag = false;
14         if (mm==2 && dd==28)
15             flag = true;
16         else if (mm==9 && dd==30)
17             flag = true;
18         else if (mm==11 && dd==30)
19             flag = true;
20         else
21         {
22             if ((mm+dd)%2==0)
23                 flag = true;
24         }
25     if (flag) 
26         cout << "YES" << endl;
27     else
28         cout << "NO" << endl;
29     }
30 }