题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1079。
题目大意:给定一个日期,两个人轮流对这个日期进行加一天或者加一个月的操作,当然操作之后的日期必须是合法的。谁让日期到达2001.11.4,谁获胜,超过这一天算负。求先手是否有必胜的策略。
分析:
因为是对月或日进行加1,而每次操作会改变的是它们两个和的奇偶性。从这方面考虑的话,如果先手面对的是偶数,那么必定会有必胜的策略,而先手如果面对的是奇数,只要是能一步达到奇数的才会有必胜的策略。
代码:
#include <iostream>
using namespace std;
int main()
{
int y,m,d,t;
cin >> t;
while(t--)
{
cin >> y >> m >> d;
if((m+d)%2==0 || (d==30 &&(m==11||m==9)))
cout << "YES" << endl;
else
cout << "NO" << endl;
}
return 0;
}