巡回Nacklaceハング電気3746

CCは常に、今月の終わりに非常に落ち込んとなり、彼はどんな驚きなしで、残された唯一の99.9元があり、昨日彼のクレジットカードをチェックしました。彼はどのように、最後の日を乗り切るには約すぎて悩んと考えています。「HDU CakeMan」の起業家精神に触発されて、彼はお金を稼ぐためにいくつかの小さなものを販売することを望んでいます。もちろん、これは簡単な作業ではありません。

クリスマスは角を曲がったところであるので、男の子は自分のガールフレンドに送信するためにクリスマスプレゼントを選ぶ際に忙しいです。チェーンのブレスレットは良い選択であると考えられています。しかし、ブレスレットが鮮やかで生き生きと表示させるために皆、女の子の好きな色鮮やかな装飾のに知られているように物事は、いつもそう単純ではありません、その間、彼らは大学生としての成熟した側を表示したいです。CCは、女の子のニーズを理解した後、彼はCharmBraceletと呼ばれるチェーンブレスレットを販売する予定。CharmBraceletは女子が生き生きと表示するカラフルな真珠で作られ、そして最も重要なことは、それが真珠の色が左から右に接続巡回であることを意味環状鎖によって接続されなければならないということです。そして、巡回回数が複数でなければなりません。あなたは左端の真珠とこのような連鎖の一番右の真珠を接続する場合は、あなたはCharmBraceletを作ることができます。ただ、以下のPictrueのように、このCharmBraceletのサイクルは9であり、その周期カウントは2です。


現在、いくつかの一般的なブレスレットチェーンにCCをもたらした、彼はより多くのお金を節約することができるようにCharmBraceletsを作るために真珠の最小数を購入したいです。しかし、ブレスレットをリメイクするとき、彼は唯一の左端とチェーンの右端に色の真珠を追加することができ、それが中央に追加することは禁止され、言うことです。
CCは、彼のアイデアに満足して助けをお願いしています。

 

 

入力
入力の最初の行は、テストケースの数を意味する単一の整数T(0 <T <= 100)です。
各テストケースは、唯一の行は、元の通常のチェーンをリメイクする記述が含まれています。文字列の各文字は1つの真珠の略で、「」〜「Z」の文字によって記述されている真珠の26種類があります。ストリングレンの長さ:(3 <=レン<= 100000)。
 

出力
それぞれのケースについて、あなたは出力にCharmBraceletを作るために追加真珠の最小数を必要としています。
 

サンプル入力
3
AAA
ABCA
ABCDE
 
サンプル出力
0
2
5
効果の件名:それはあなたの文字列を与えること、である、プラス少なくともあなたはそれに完璧にマッチさせるためにどのように多くの文字を決定しましょう
使用される知識:KMP、最小サイクル長さが全長マイナス次[N-1](0から数えて)に等しいがあります
#include <cstdioを> 
する#include <iostreamの> 
する#include < ストリング > 
の#include <CStringの>
 使用して 名前空間STD; 
typedefの長い ロングLL;
 のconst  int型 N = 1E6の+ 7。;
 CHAR ARR [N]; 
LL NXT [N]; 
// abcdefabcdefab
 // 全長N NXTを引い[N-1]のループ部の最短の長さである
INT のmain(){
     int型T; 
    scanfの(" %のD "、&T)、
     一方(T-- ){ 
        scanfの(" % S "、ARR)。
        LL N = STRLEN(ARR)。
        (LL i = 1 ; iがn <; Iは++ ){ 
            LL J = NXT [I- 1 ]。
            一方(!ARR [I] = ARR [J] && J> 0)J = NXT [J- 1 ]。
            もし(ARR [I] == ARR [J])J ++ ; 
            NXT [I] = jは、
        } 
        INT LEN = N-NXT [N- 1 ]。
        もし(LEN == N)のprintf(" %Dを\ n " 、LEN)。
        そう であれば(N%LEN == 0 ){ 
            プット(" 0 " ); 
        } 
        のprintf(" %d個の\ n "、lenの-Nの%のLEN)。
    } 
    戻り 0 
}

 

 

おすすめ

転載: www.cnblogs.com/Accepting/p/11366275.html