acm的程序大家是完全背下来还是知道怎么用就可以了,比赛是照着书本敲

如题所述

ACM比赛是完全不用背的。你可以带任何你想带的纸质材料去比赛。可是建议还是得多背点模板,而且要多使用模板。就像数学公式一样,如果背下来不常用等做题的时候还是没有用的。而且你要经常背着敲代码。ACM的比赛时间是很紧张的。如果不能很流利的敲模板代码,比赛结果不会太好的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-27
算法多手写几遍可以加深印象,常用的算法写得多了自然存乎一心。
理解思想是最重要的。关于模板还是少而精简。
第2个回答  2010-11-27
if(Y%4==0&&Y%100!=0||Y%400==0)这一句,必须在M大于等于2时才会执行,如果只是1月份,干嘛还加1啊,还有,如果是我,我就switch……case……里从12开始写,倒着走,这样不用在每个case后写break,而且每次加上月天数即可,不易出错,你这里是否加对了我没有验证

我写的话就是这样了:
#include<stdio.h>
int main(void)
{
int Y,M,D,S;
while(scanf("%d%d%d",&Y,&M,&D)!=EOF)
{
switch(M)
{
case 12:S=D+30;
case 11:S=D+31;
case 10:S=D+30;
case 9:S=D+31;
case 8:S=D+31;
case 7:S=D+30;
case 6:S=D+31;
case 5:S=D+30;
case 4:S=D+31;
case 3:S=D+28;
case 2:S=D+31;
case 1:S=D;
}
if(M>=2&&Y%4==0&&Y%100!=0||Y%400==0)
S=S+1;
printf("%d\n",S);
}
return 0;
}
相似回答