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 |
TLE了,哪位仁兄帮帮我看一下:#include <iostream> #include <fstream> using namespace std; const int max=1100; int t; int a[max][max],num[max]; //a[][]存储i组的j个元素,num存储i组有多少个元素 int que[max][max];//队列 int quesize[max]; //队列的大小 int group[max]; //组号 int groupnum; int schgroup(int p){ int i,j; for(i=0;i<t;i++){ for(j=0;j<num[i];j++){ if(a[i][j]==p)return i; } } return -1; } void init(){ memset(a,0,sizeof(a)); memset(num,0,sizeof(num)); memset(que,0,sizeof(que)); memset(quesize,0,sizeof(quesize)); memset(group,0,sizeof(group)); groupnum=0; } int main(){ // ifstream cin("data.txt"); int testcase=1; while(1){ cin>>t; if(t==0)break; int i,j; for(i=0;i<t;i++){ cin>>num[i]; for(j=0;j<num[i];j++){ cin>>a[i][j]; // cout<<a[i][j]<<" "; } // cout<<endl; } cout<<"Scenario #"<<testcase++<<endl; while(1){ char comd[20]; cin>>comd; if(comd[0]=='S')break; if(comd[0]=='E'){//perform enqueue int good; cin>>good; int gp=schgroup(good); bool find=false; for(i=0;i<groupnum;i++){ if(gp==group[i]){ find=true; break; } } if(find){ que[i][quesize[i]]=good; quesize[i]++; }else{ group[groupnum]=gp; quesize[groupnum]=1; que[groupnum][0]=good; groupnum++; } }else if(comd[0]=='D'){ cout<<que[0][0]<<endl; if(quesize[0]==1){ for(i=1;i<groupnum;i++){ //memcpy(que[i-1],que[i],max); for(j=0;j<quesize[i];j++){ que[i-1][j]=que[i][j]; } quesize[i-1]=quesize[i]; } groupnum--; }else{ for(i=1;i<quesize[0];i++){ que[0][i-1]=que[0][i]; } quesize[0]--; } //perform dequeue } } cout<<endl; } return 1; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator