题意:
Return the amount of tetrad (a,b,c,d) which satisfy
Sa..b + Sc..d = T , a≤b and
c≤d.
思路:
正反两次kmp,匹配出最长前后缀的匹配次数.再进行统计.
注意的是统计的方法:
因为记录的是最长前后缀, 而统计时要将所有的前后缀都要算进去, 相当于每加一次, 都要沿着next回溯到-1. 有一种方法就是不断地向前累加"最长前后缀匹配次数"数组, 用迭代的方式节省不必要的循环.
坑:
注意下标:next下标小一.....
#include <cstdio>
#include <cstring>
using namespace std;
int const MAXN = 100005;
char s[MAXN],......
阅读全文