参考了别人的算法,数学果然是王道!
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 }