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 |
只有计算概论,程序设计实习的基础,怎么省时呢?In Reply To:这个题省不了多少时间的 Posted by:TN at 2005-07-04 10:48:00 #include<iostream.h> void main() { int N,i,j,k,p; int *a,*b,*r; cin>>N; a=new int[N]; b=new int[N]; r=new int[N]; for(i=1;i<N;i++) { cin>>a[i]; b[i]=i+1; } b[0]=1; for(i=N-1,k=N-1;i>0;i--) { if(i==N-1) { r[i]=a[i]+1; for(j=r[i]-1;j<k;j++) b[j]=b[j+1]; } else { for(j=0;j<k;j++) { int x=0; for(p=N-1;p>i;p--) { if(r[p]<b[j]) x++; } if(b[j]==a[i]+x+1) { k--; r[i]=b[j]; for(p=j;p<k;p++) b[p]=b[p+1]; break; } } } } cout<<b[0]<<endl; for(i=1;i<N;i++) cout<<r[i]<<endl; delete [] a; delete [] b; delete [] r; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator