牛客 水 悠悠碧波(Next陣列 kmp小運用)

2021-10-01 03:14:25 字數 635 閱讀 3994

傳送門

題意:

給乙個字串s求子串滿足:子串是s串的公共前字尾又在s串**現過

題解:

先求出next陣列 ,得到最長公共前字尾,然後列舉公共前字尾,從大到小,看是否有滿足情況的,如果有,break然後輸出子串p

ac**:

#include

using namespace std;

const int maxn=

1e6+3;

int next[maxn]

;void getnext(char p)

//處理公共前字尾

}int kmp(char s[

],char p)

}return ans;

}int main(

) p[id+

1]='\0';if

( kmp(s,p)

>=3)

id=next[id]

;}printf(

"%s"

,p);

}

牛客練習題 水 悠悠碧波

帕秋莉掌握了一種水屬性魔法 這種魔法可以淨化黑暗 帕秋莉發現對於乙個黑暗的咒語s,可以使用這個水元素魔法淨化它,淨化的咒語是乙個最長的字串t,t滿足以下條件 它是s的字首 它是s的字尾 除字首和字尾外,它還在s 現過至少一次 既然你都學會了,那麼淨化的工作就交給你了!輸入描述 一行字串 s 代表黑暗...

水 悠悠碧波

題目描述 帕秋莉掌握了一種水屬性魔法 這種魔法可以淨化黑暗 帕秋莉發現對於乙個黑暗的咒語s,可以使用這個水元素魔法淨化它,淨化的咒語是乙個最長的字串t,t滿足以下條件 它是s的字首 它是s的字尾 除字首和字尾外,它還在s 現過至少一次 既然你都學會了,那麼淨化的工作就交給你了!輸入描述 一行字串 s...

牛客 悠悠碧波 CF126B(kmp)

首先字首和字尾相等,聯想到kmp kan mao pian 演算法 該子串既是以len 1結尾的字尾,也是串中以某一第i位置結尾的字尾,也是整個串的字首。1 首先kmp演算法處理出 0,len 位置的next值。對於 0,len 1 的next儲存的是失配的下一匹配位置 1,len 可看作 0,le...