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阿,问问各位怎么改进阿,GCCIn Reply To:TLE阿,问问各位怎么改进阿,GCC Posted by:denganliang at 2011-03-28 17:31:21 > #include <stdio.h> > #include <string.h> > char s[15]; > int l; > char str[52]={'A','a','B','b','C','c','D','d','E','e','F','f','G','g','H','h','I','i', > 'J','j','K','k','L','l','M','m','N','n','O','o','P','p','Q','q','R','r','S','s','T','t', > 'U','u','V','v','W','w','X','x','Y','y','Z','z'}; > void sort(){ > int a[15],len,i,j; > char temp; > for(i=0;i<15;i++) > a[i]=-1; > len=l; > for(i=0;i<len;i++){ > for(j=0;j<52;j++){ > if(s[i]==str[j]){ > a[i]=j; > break; > } > } > } > for(i=0;i<len;i++) > for(j=i;j<len;j++){ > if(a[i]>a[j]) > { > temp=s[i]; > s[i]=s[j]; > s[j]=temp; > temp=a[i]; > a[i]=a[j]; > a[j]=temp; > } > } > } > void swap(char *a,char *b){ > char temp; > temp=*a; > *a=*b; > *b=temp; > } > void pailie(int key,int len){ > int i; > if(key==l-1) printf("%s\n",s); > else{ > for(i=key;i<l;i++){ > if(s[i]==s[i+1]) > { > continue; > } > swap(&s[key],&s[i]); > pailie(key+1,len-1); > swap(&s[key],&s[i]); > > } > } > > } > > int main(){ > int k,n; > scanf("%d",&n); > for(k=0;k<n;k++){ > memset(s,'\0',15); > scanf("%s",s); > l=strlen(s); > if(l==1) printf("%s\n",s); > else{ > sort(); > > //printf("\n%s\n",s); > pailie(0,l-1); > } > } > return 0; > } 程序没有仔细看,用stl的next_permutation都不会超时。。。 Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator