USACAO friday

来源:互联网 发布:java群ping 编辑:程序博客网 时间:2024/05/19 09:17

背景:开始一看好一道模拟题,应该很复杂吧,想了好久简化了还好。还是调了几次,竟然因为没有打'\n'而wa了!!!

学习:1.今天晚上和李兵学长逛了逛校园,交流了学习上的事,acm这条路我自己选的跪着走好走完!再次感谢学长对小白的关照,还是学长请我喝的奶茶,大哭感谢。(学长已经在soj过了300题了)

2.代码在这里显然还不够精简,主要是12个月每个月都建立了一个for循环,以这个月的天数作为,跳出循环的条件。何不建立一个数组month[31,isleap,31,30,31,30,31,31,30,31,30,31],以month[i]作为退出条件?

心得:这是一道模拟题,开始读了这个题后就发现时模拟题,有点恐惧,仔细一想又觉得可写,为什么清华那些神牛队伍总是读题很慢,出题很快,因为他们有一个思考的过程把这个题思考的很透彻了。以后我也要多一些时间思考。然后不是每个人都需要自己独特的代码强项吗?从此以后我看到模拟题就上,我要成为“模拟题小王子”微笑

/*ID:jibancan1LANG:C++TASK:friday*/#include<stdio.h>int isleap(int x);  int isleap(int x){                                     if(x%100==0)     if(x%400==0) return 29;     else return 28;  else if(x%4==0) return 29;  else return 28;  }int main(void){freopen("friday.in","r",stdin);freopen("friday.out","w",stdout);int n,ax=0,feb,a[8]={0,0,0,0,0,0,0};                 scanf("%d",&n);for(int i=0;i<n;i++){feb=isleap(1900+i); for(int j=0;j<31;j++){ax++;if(ax==8) ax=1;if(j==12) a[ax]++;}for(int j=0;j<feb;j++){ax++;if(ax==8) ax=1;if(j==12) a[ax]++;}for(int j=0;j<31;j++){ax++;if(ax==8) ax=1;if(j==12) a[ax]++;}for(int j=0;j<30;j++){ax++;if(ax==8) ax=1;if(j==12) a[ax]++;}for(int j=0;j<31;j++){ax++;if(ax==8) ax=1;if(j==12) a[ax]++;}for(int j=0;j<30;j++){ax++;if(ax==8) ax=1;if(j==12) a[ax]++;}for(int j=0;j<31;j++){ax++;if(ax==8) ax=1;if(j==12) a[ax]++;}for(int j=0;j<31;j++){ax++;if(ax==8) ax=1;if(j==12) a[ax]++;}for(int j=0;j<30;j++){ax++;if(ax==8) ax=1;if(j==12) a[ax]++;}for(int j=0;j<31;j++){ax++;if(ax==8) ax=1;if(j==12) a[ax]++;}for(int j=0;j<30;j++){ax++;if(ax==8) ax=1;if(j==12) a[ax]++;}for(int j=0;j<31;j++){ax++;if(ax==8) ax=1;if(j==12) a[ax]++;}}printf("%d %d %d %d %d %d %d\n",a[6],a[7],a[1],a[2],a[3],a[4],a[5]);return 0;} 



0 0
原创粉丝点击