[kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher D Cyclic Nacklace

题目

思路

利用到kmp的next数组的一个性质。

  • 最小循环节长度length = plen - next[plen];
  • 如果plen%length == 0(plen!=length) ,那么完全循环。
  • 否则需要增加plen - plen%length完成循环。(注意plen==length则需要增加plen)
#include
using namespace std;
const int MAXN=10000002;

string P;
string T;

int NEXT[MAXN];
int plen,tlen;
void getNext(){
    NEXT[0] = -1;
    int k = -1 ;
    int j = 0 ;
    while(j>TT;
    while(TT--){
        cin>>P;
        plen = P.length();
        getNext();
        int length = plen - NEXT[plen];
//      for(int i = 0 ;i

你可能感兴趣的:([kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher D Cyclic Nacklace)