今天再次登临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),而且完全是靠数学分析来做。程序设计中数学是力大无穷哦。。
转载于:https://blog.51cto.com/jeick/217801