开学来的第一次周赛,对于我来说也是第一次跟同学们在307做题,确实挺紧张的。这一次的题目是在北师大OJ上做,自己还不太习惯。
我先看到的是A题,第一感觉是比较简单,就是求A^B的所有因子之和,但是当看到那个(0 <= A,B <= 50000000)就傻眼了,于是也就没再多想那道题。
对于B题,我第一眼连题都没有看懂,果断就跳过去了。
C题要说相比是最简单的了,前两次都在小问题上没有注意,结果连续WA,直到最后才AC了。
- #include<stdio.h>
- #include<string.h>
- int main()
- {
- int N,i,j,d[301],t,b[301],k;
- char a[301][52],m[52],c[301][52];
- while(scanf("%d",&N)!=EOF)
- {
- k=0;
- for(i=0;i<N;i++)
- {
- scanf("%s",&a[i]);
- scanf("%d",&d[i]);
- }
- for(i=0;i<N;i++)
- {
- scanf("%s",&c[i]);
- scanf("%d",&b[i]);
- }
- for(i=0;i<N;i++)
- for(j=1;j<N-i;j++)
- {
- if(d[j-1]<d[j])
- {
- t=d[j-1];
- d[j-1]=d[j];
- d[j]=t;
- strcpy(m,a[j-1]);
- strcpy(a[j-1],a[j]);
- strcpy(a[j],m);
- }
- }
- for(i=0;i<N;i++)
- {
- if(d[i]!=b[i])
- {
- printf("Error\n");
- for(i=0;i<N;i++)
- {
- printf("%s %d\n",a[i],d[i]);
- }
- k++;
- break;
- }
- }
- if(k==0)
- {
- for(i=0;i<N;i++)
- {
- if(strcmp(a[i],c[i])!=0)
- {
- printf("Not Stable\n");
- for(i=0;i<N;i++)
- {
- printf("%s %d\n",a[i],d[i]);
- }
- k++;
- break;
- }
- }
- }
- if(k==0)
- printf("Right\n");
- }
- return 0;
- }
在比赛最后阶段,我一直在做D题,感觉题意已经理解了,但就是在编代码的过程中有许多细节自己不太确定,于是,反复测试数据,感觉没问题,于是便提交了,结果不断的WA,但是自己始终找不到哪里的错误,直到最后,一直在纠结着这道题。
以下是我的WA代码:
- #include<stdio.h>
- int main()
- {
- __int64 i,N,a[100002],b[100002],s,t,T,k,Pi,Di;
- scanf("%I64d",&T);
- for(k=0;k<T;k++)
- {
- scanf("%I64d",&N);
- for(i=0;i<N;i++)
- {
- scanf("%I64d%I64d",&Pi,&Di);
- a[i]=Pi;
- b[i]=Di;
- }
- s=a[0]+b[0];
- t=b[0];
- for(i=0;i<N-1;i++)
- {
- if(s<a[i+1])
- {
- s=a[i+1]+b[i+1];
- t=b[i+1];
- }
- else
- {
- if(s==a[i+1])
- {
- s=a[i+1]+(b[i]>b[i+1]?b[i]:b[i+1]);
- t=(b[i]>b[i+1]?b[i]:b[i+1]);
- }
- else
- {
- s=s+t;
- }
- }
- }
- printf("%I64d\n",s);
- }
- return 0;
- }
不过最后在与队友的交谈中我总算是知道我的代码错在哪里了。
对于后面的几道题,确实难度较大,有的连题意都没有搞清楚,看来自己果断还是太水了呀!!向大神看齐。。。。