今天再次登临HDUOJ(杭州电子科技大学在线评判系统),初看到1079题的时候感觉有点复杂,题目讲的很长信息给的比较多,这对于一般人来说就是个bug,信息越多导致头脑越乱,思路越不清晰。
 
作者:四川大学计算机学院2008级 贾钰。QQ:278392242
 
 
 
分析:2种操作,日+1,或月+1,(除了几个特殊日期外)均能改变月+日的奇偶性,    
而目标11.4,月+日为奇数,所以只要起始日期的月+日为偶数,Adam,the first mover,就可能赢。    
而几个特殊日期(9.30,11.30),尽管月+日为奇数,但下一步仍然可以得到奇数。 
 
 
代码:
#include<iostream>
using namespace std;
int main()      
{      
    int t,y,m,d;      
    scanf("%d",&t);      
    while(t--)      
    {      
        scanf("%d%d%d",&y,&m,&d);      
        if((m+d)%2==0)      
            cout<<"YES"<<endl;      
        else if(m==9&&d==30)      
            cout<<"YES"<<endl;      
        else if(m==11&&d==30)      
            cout<<"YES"<<endl;      
        else     
            cout<<"NO"<<endl;      
    }      
    return 0;      
}
 
算法补充:这无疑是最优算法,时间复杂度是O(1),而且完全是靠数学分析来做。程序设计中数学是力大无穷哦。。