程序設計中數學很重要(杭電1079)

今天再次登臨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),而且完全是靠數學分析來做。程序設計中數學是力大無窮哦。。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章