摘要:
有两个字符串A和B,求多少对属于A的子串组成B。若组成B的其中一个子串等于B[0...i](0<=i<n),那么另外一个就等于B[i+1...n-1].所以总共有n-1种形式。那么其实就是求B[0...i]和B[i+1...n-1]的值,之后再利用乘法原理求出答案。既然是两个串的模式匹配,KMP算法就再适合不过了。KMP算法的核心在于p[]数组,p[i]指的是s[0...p[i]]等于s[i-p[i]...i]。#include <cstring>#include <cstdio>#include <algorithm>#define MAXN 阅读全文