Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:动态分配和静态分配为什么差距这么大?In Reply To:动态分配和静态分配为什么差距这么大? Posted by:jiaohang at 2005-10-05 11:05:51 > 只改p的分配方式,一个是0MS,一个超时。为什么? > > #include <stdio.h> > > void dv (int a,int *t) > { > t[0]=a/100; > a-=t[0]*100; > t[1]=a/10; > t[2]=a-t[1]*10; > } > int main() > { > // int p[1000];//这行超时 > int *p=new int[1000];//这行通过 > int n,ps,r=1,rg[10],i; > > int t[3]; > > for(n=0;scanf("%d",&p[n])!=EOF;n++) > {} > for(i=0;i<10;i++)rg[i]=0; > ps=0; > while(p[ps]!=100) > { > r++; > dv(p[ps],t); > switch(t[0]) > { > case 2: > rg[t[1]]=t[2]; > break; > case 3: > rg[t[1]]+=t[2]; > if(rg[t[1]]>=1000 )rg[t[1]]-=1000; > break; > case 4: > rg[t[1]]=rg[t[1]]*t[2]%1000; > break; > case 5: > rg[t[1]]=rg[t[2]]; > break; > case 6: > rg[t[1]]+=rg[t[2]]; > if(rg[t[1]]>=1000 )rg[t[1]]-=1000; > break; > case 7: > rg[t[1]]=rg[t[1]]*rg[t[2]]%1000; > break; > case 8: > rg[t[1]]=p[rg[t[2]]]; > break; > case 9: > p[rg[t[2]]]=rg[t[1]]; > break; > case 0: > if(rg[t[2]]) > ps=rg[t[1]]-1; > break; > } > ps++; > } > printf("%d",r); > return 0; > > > > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator