今天再次登臨HDUOJ(杭州電子科技大學在線評判系統),初看到1079題的時候感覺有點複雜,題目講的很長信息給的比較多,這對於一般人來說就是個bug,信息越多導致頭腦越亂,思路越不清晰。
作者:四川大學計算機學院2008級 賈鈺。QQ:278392242
分析:2種操作,日+1,或月+1,(除了幾個特殊日期外)均能改變月+日的奇偶性,
而目標11.4,月+日爲奇數,所以只要起始日期的月+日爲偶數,Adam,the first mover,就可能贏。
而幾個特殊日期(9.30,11.30),儘管月+日爲奇數,但下一步仍然可以得到奇數。
而目標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;
}
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),而且完全是靠數學分析來做。程序設計中數學是力大無窮哦。。