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:求助! 用了快排和二分,但仍然TLE,代码如下In Reply To:求助! 用了快排和二分,但仍然TLE,代码如下 Posted by:zhj5825 at 2006-08-03 09:26:35 > > 是不是还有什么要注意的地方呢?请大家指点一下,非常感谢 > —————————————————————————————————————————————— > #include<stdio.h> > #include<stdlib.h> > #include<string.h> > char dic[100000][100],word[100],wrong[100000][100]; > int Partition(int,int); > void QSort(int,int); > main() > { > int N,i,num_email,num,flag,num_wrong=0,mid,low,high; > scanf("%d",&N); > for (i=1;i<=N;i++) > scanf("%s",dic[i]); > scanf("%d",&num_email); > num=num_email; > QSort(1,N); > > while (num_email>0) > { > num_wrong=0; > while (1) > { flag=0; > scanf("%s",word); > if (strcmp(word,"-1")==0) > break; > > low=1;high=N; > while (low<=high) > { > mid=(low+high)/2; > if (strcmp(word,dic[mid])==0) > {flag=1;break;} > else if (strcmp(word,dic[mid])<0) > high=mid-1; > else low=mid+1; > } > if (flag==0) > { > num_wrong++; > strcpy(wrong[num_wrong],word); > > } > } > > if (num_wrong==0) > printf("Email %d is spelled correctly.\n",num-num_email+1); > else > { > printf("Email %d is not spelled correctly.\n",num-num_email+1); > for (i=1;i<=num_wrong;i++) > printf("%s\n",wrong[i]); > } > num_email--; > } > printf("End of Output.\n"); > system("PAUSE"); > } > int Partition(int low,int high) > { > char cmp[30]; > strcpy(cmp,dic[low]); > while (low<high) > { > while (low<high && strcmp(dic[high],cmp)>=0) --high; > strcpy(dic[low],dic[high]); > while (low<high && strcmp(dic[low],cmp)<=0) ++low; > strcpy(dic[high],dic[low]); > } > strcpy(dic[low],cmp); > return low; > } > void QSort(int low, int high) > { > int pivotloc; > if (low<high) > { > pivotloc=Partition(low,high); > QSort(low,pivotloc-1); > QSort(pivotloc+1,high); > } > } > Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator