1 #include<stdio.h>
#include<stdio.h>
 2 #include<string.h>
#include<string.h>
 3 #include<stdlib.h>
#include<stdlib.h>
 4 char a[10000][1000];
char a[10000][1000];
 5 int cmp(const void *a,const void *b)
int cmp(const void *a,const void *b)
 6

 {
{
 7 return strcmp((char *)a,(char *)b);
        return strcmp((char *)a,(char *)b);
 8 }
}
 9 int zh(char *s, int l)//最小表示法 从return值开始为最小
int zh(char *s, int l)//最小表示法 从return值开始为最小 
10

 {
{
11 int i = 0, j = 1, k = 0, t;
    int i = 0, j = 1, k = 0, t;
12 while (i < l && j < l && k < l)
    while (i < l && j < l && k < l)
13
 
     {
{
14 t = s[(i + k)%l] - s[(j + k)%l];
        t = s[(i + k)%l] - s[(j + k)%l];
15 if (!t) ++ k;
        if (!t) ++ k;
16 else
        else
17
 
         {
{
18 if (t > 0)
            if (t > 0)
19
 
             {
{
20 i = i + k + 1;
                 i = i + k + 1;
21 }
            }
22 else
            else 
23
 
             {
{
24 j = j + k + 1;
                j = j + k + 1;
25 }
            }
26 if (i == j) ++j;
            if (i == j) ++j;
27 k = 0;
            k = 0;
28 }
        }
29 }
    }
30 return i>j?j:i;
    return i>j?j:i;
31 }
}
32 int main()
int main()
33

 {
{
34 int n,si,q,l;
    int n,si,q,l;
35 int i,j,p,c,k;
    int i,j,p,c,k;
36 char b[1000],cc[1000];
    char b[1000],cc[1000];
37 while(scanf("%d",&n)!=EOF)
    while(scanf("%d",&n)!=EOF)
38
 
     {
{
39 c=0;
        c=0;
40 memset(a,0,sizeof(a));
        memset(a,0,sizeof(a));
41 getchar();
        getchar();
42 for(i=0;i<n;i++)
        for(i=0;i<n;i++)
43
 
         {
{
44 scanf("%s",b);
            scanf("%s",b);
45 l=strlen(b);
            l=strlen(b);
46 si=zh(b,l);
            si=zh(b,l);
47 for(j=si,k=0;j<l;j++,k++)
            for(j=si,k=0;j<l;j++,k++)
48
 
             {
{
49 a[i][k]=b[j];
                a[i][k]=b[j];
50 }
            }
51 for(j=0;j<si;j++,k++)
            for(j=0;j<si;j++,k++)
52
 
             {
{
53 a[i][k]=b[j];
                a[i][k]=b[j];
54 }
            }
55 a[i][k]='\0';
            a[i][k]='\0';
56 }
        }
57 qsort(a,n,sizeof(a[i]),cmp);
        qsort(a,n,sizeof(a[i]),cmp);
58 c=1;
        c=1;
59 for(i=1;i<n;i++)
        for(i=1;i<n;i++)
60
 
         {
{
61 if(strcmp(a[i-1],a[i])!=0)
            if(strcmp(a[i-1],a[i])!=0)
62 c++;
                c++;
63 }
        }
64 printf("%d\n",c);
        printf("%d\n",c);
65 }
    }
66 }
}
67 
    
68
 
	posted on 2009-01-27 14:06 
混沌的云 阅读(222) 
评论(0)  编辑 收藏 引用