ループセクションの簡単な列挙
693 ワード
:1つの列の最小循環節を求めます.
分析:暴力、文字列.データ量が小さく、列挙法を直接使用します.
ループ節の長さを列挙し,一致判断し,第1の解のセットを見つけると最小となる.
説明:(⊙⊙).
vj 455
分析:暴力、文字列.データ量が小さく、列挙法を直接使用します.
ループ節の長さを列挙し,一致判断し,第1の解のセットを見つけると最小となる.
説明:(⊙⊙).
vj 455
#include
#include
#include
#include
using namespace std;
char str[104];
int main()
{
int n;
while (~scanf("%d",&n))
while (n --) {
scanf("%s",str);
int len = strlen(str);
for (int k,i = 1 ; i <= len ; ++ i)
if (len%i == 0) {
for (k = i ; k < len ; ++ k)
if (str[k] != str[k%i])
break;
if (k == len) {
printf("%d
",i);
break;
}
}
if (n) printf("
");
}
return 0;
}