1040いくつかのPATがあります。

入力フォーマット:

以下の文字列からなる入力単一行1のみが含まれ  PAT 手紙の三種類。

出力フォーマット:

出力参照番号は、文字列のラインに含まれています  PAT結果は、比較的大きくてもよいように、十億七の出力のみが残りの結果を取ります。

サンプル入力:

APPAPT

出力例:

2
する#include <stdio.hの> に#define LIM 1000000007 int型のmain()
{ int型 P = 0、PA = 0、PAT = 0 char型のC; 一方、(!=(C = GETCHAR())' \ n ' 
    { もし、(C == ' P ' ++ P) もし(C == ' A ')PA =(PA + P)。
        もし(C == ' T ')PAT =(PAT + PA)%のLIM。
    } 
    のprintf(




    

    
        " %のD " 、PAT)。

    リターン 0 ; 
}

それは次のようになりの文字列内の文字の後に追加した場合、「PAT」に長さnの文字列を与えられた数は、合計でどのように多くの「PAT」の新しい文字列の数?
文字が「P」に追加された場合、新しい文字列「PAT」の数は変更されません。
文字が「A」として追加された場合は、新しい文字列「PAT」の数は変更されません。
文字が「T」として追加された場合は、新しい文字列「PAT」の数は異なる場合があります。なぜなら追加「T」の変化の数は、新しい「PAT」を構成しています。古い文字列番号「PA」は新憲法「PAT」の数と同じであるため、「PAT」新憲法の数を知りたい、あなたは、「PA」古い文字列の数を知っておく必要があります。すなわち、新しい文字列の数は、「PAT」古い=古い文字列内の文字列「PA」の数+「PAT」。
同様に、顔「」新しい文字列「PAは」古い文字列「P」+古い文字列「PA」数の数の数を=。



おすすめ

転載: www.cnblogs.com/chcodelife/p/11130010.html