hdu1079博弈(规律)

不论是月份加一,还是日期加一,奇偶性(月+天)都会改变,2月也是一样,9月30日和11月30日例外。
那么目标日期是11月4日,为奇数。初始日期如果为偶数的话,先者必胜。
考虑特殊是日期,两个特殊日期本来为奇数,移动一步还是奇数。那么会不会在中途经过这两个日期呢。
如果本来为偶数,如果经过特殊日期就会改变奇偶,从必胜到必败。作为先手,不会主动进入特殊日期,而后者不可能从奇数依旧到达特殊日期的奇数。
如果本来为奇数,同样先手想赢,但是不可能进入特殊日期。保持奇偶性交替变化。
这样一来只可能是初始为特殊日期,否则中途不可能出现特殊日期
找出规律,想法题

#include <iostream>

using namespace std;

int main()
{int year,month,day;
 int t;
 cin>>t;
 while(t--)
 {
     cin>>year>>month>>day;
     if((month+day)%2==0||((month==9||month==11)&&day==30))
     cout<<"YES"<<endl;
     else
     cout<<"NO"<<endl;
 }

    return 0;
}

你可能感兴趣的:(hdu1079博弈(规律))