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

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

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

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