傳送門
題意:給乙個字串
s
求子串滿足:子串是s串的公共前字尾又在s串**現過
題解:ac**:先求出next陣列 ,得到最長公共前字尾,然後列舉公共前字尾,從大到小,看是否有滿足情況的,如果有,
break
然後輸出子串p
#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...