#include<bits/stdc++.h>
#define ll long long
#define pc putchar
using namespace std;
template<typename T>
inline void read(T &x)
{
x=0;
T f=1;
char c=getchar();
while(!isdigit(c)){if(!isspace(c))f=-1; c=getchar();}
while(isdigit(c)){x=x*10+(c^48); c=getchar();}
x*=f;
return;
}
template<typename T,typename... Args> inline void read(T &x, Args&... args){read(x); read(args...);}
template<typename Z>
inline void write(Z x)
{
if(x<0)putchar('-'),x=-x;
if(x>9)write(x/10);
putchar((x%10)^48);
}
template<typename Z,typename... Args> inline void write(Z x, Args... args){write(x); putchar(' '); write(args...);}
int main()
{
read(lt, ls);
cin>>(t+1)>>(s+1);
for(int i=2, j=0; i<=n; i++)
{
while(j && t[i] != t[j+1]) j = nxt[j];
if(t[i] == t[j+1]) j++;
nxt[i] = j;
}
t[n+1] = '@';
nxt[n+1] = 1;
memset(dp,0x3f,sizeof dp);
dp[0] = 0;
for(int i=1, j=0; i<=m; i++)
{
while(j && s[i] != t[j+1]) j = nxt[j];
if(s[i] == t[j+1]) j++;
dp[i] = min(dp[i], dp[i-j] + 1);
}
if(dp[m] < INF) write(dp[m]);
else puts("Fake");
return 0;
}
11
发布时间 2023-03-22 21:15:50作者: LittleN