UVa 1584 - Circular Sequence

给你一个环序列剪一刀,问你按字典数最小的那个是怎样剪的。

显然循环一下就够了

 1 #include <cstdio>
 2 #include <iostream>
 3 #include <cstring>
 4 using namespace std;
 5 int t,m,len;
 6 char s[105],ans[105],tmp;
 7 void fuc(){
 8     m=len-1;
 9     while(m--){
10         tmp=s[0];
11         for(int i=0;i<len-1;i++){
12             s[i]=s[i+1];
13         }
14         s[len-1]=tmp;
15         if(strcmp(ans,s)>0) strcpy(ans,s);
16     }
17 } 
18 int main(){
19     scanf("%d",&t);
20     while(t--){
21         scanf("%s",s);
22         len=strlen(s);
23         strcpy(ans,s);
24         fuc();
25         printf("%s\n",ans);
26     }
27 }

 

你可能感兴趣的:(UVa 1584 - Circular Sequence)