KMP的一道水题,最初竟然傻逼的想用自动机怼,毫无疑问的T了,后来仔细想了一下,就是自动自单链的情况,就怼kmp,然后不知道发什么神经没有转过来弯,竟然没调出来,然后我就自己写了单链的fail指针,调了很久A了,但是浪费了很多时间,赛后想想,特么的就是个kmp,next数组跟fail指针就特么差一位而已,果然,套个板子就A了,要不然,今天又可以多出一题了,警示自己一下,不要那么菜啊~~~~
#include#include #include #include #include #include using namespace std;const int maxn=1e6+10;const int mod=1e9+7;int Next[maxn],en[maxn];void kmp_pre(char x[],int m){ int i,j; j=Next[0]=-1; i=0; while(i 0;i--) en[Next[i]-1]+=en[i-1]; for(int i=0;i