kmp
Drenight
Dream in the night.
展开
-
MP算法模板
void getfail(char* p,int *f){ int m=strlen(p); f[0]=0; for(int i=1;i<m;i++){ int j=f[i]; while(j&&p[i]!=p[j])j=f[j]; f[i+1]=p[i]==p[j]?j+1:0; }}void find(char* ori,char* tar,int *f){ int原创 2017-05-20 23:56:44 · 281 阅读 · 0 评论 -
Codeforces 346B - Lucky Common Subsequence kmpDP
最长公共子序列加强版,要求最长子序列不包含病毒串在原本的dp[i][j]上新增一维k,表示A串前i个和B串前j个匹配到病毒串第k个字符的最大值扩展一下多个病毒串的话就用AC自动机把,K换成自动机状态A[i]=B[j]时,dp[i+1][j+1][k]=dp[i][j][f[k]]+1其实这种更新方式挺蛋疼的,从[i-1][j-1]更新过来更符合转移方程定义一些#include原创 2017-09-20 23:16:45 · 366 阅读 · 0 评论