HASH処理KMPアルゴリズム

シミュレーションゲームは、その日、YZR兄は私がHASH KMPを行う可能性が私に言った、そしてその場で、今日実行するだけで何もしそれをしませんでした、私はHASHトライと呼ばれ、結果は本当にタイトルKMPを与えました

コード:

1の#include <iostreamの>
 2の#include <cstdioを>
 3の#include <CStringの> 
 4  使って 名前空間STDを、
5  のconst  int型バ= 131、M = 1E6 + 10 6  CHAR [M]、B [M]。
7  長い 長いLA、LB;
8  長い 長いsumv [M]、ミル[M]、キー;
9  長い 長い 得る長い  L、長い 長いR)
 10  {
 11      リターン sumv [R] -sumv [L] *ミル[ラ]。
12  }
 13  のint main()の
 14  {
 15      キー= 0 16      のmemset(sumv、0はsizeof sumv)。
17      のscanf(" %sの%sの"、B + 1、A + 1 )。
18      ラ=のSTRLEN(A + 1)、LB = STRLEN(B + 1)、ミル[ 0 ] = 1 19      のためには、int型 i = 1 ; iが=ラ<; ++ I)キー=キー*バ+(INT )[I];
20      のためのint型 I = 1 ; I <= LB; ++ I) 
 21          sumv [I] = sumv [I- 1 ] *バ+(INT)B [i]は、ミル[I] =ミル[I- 1 ] * バ;
22      INT ANS = 0 23      のためのint型 I = 0を ; ++; I <= LB-ラi)が
 24          場合(キー== GET(私は、i)はラを+)++ ANS;
25      COUT << ANS << ENDL。
26      リターン 0 ;
27 }

 

おすすめ

転載: www.cnblogs.com/cptbtptpbcptbtptp/p/11669076.html