Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
45727 seanlsy 【模拟赛3】JF 和 HJJ 是什么关系 C++ 通过 100 46 MS 3200 KB 724 2022-02-23 13:55:44

Tests(7/7):


#include <bits/stdc++.h> using namespace std; inline int read(int x=0,bool f=1){ char c=getchar(); while(c>'9'||c<'0'){if(c=='-')f=0;c=getchar();} while(c>='0'&&c<='9'){x=(x<<3)+(x<<1)+c-'0';c=getchar();} return f?x:-x; } char s[1000005],t[1000005]; int n[1000005],x,y; void Init(){ for(int i=2,j=0;i<=y;i++){ while(j&&t[j+1]!=t[i]) j=n[j]; j+=(t[j+1]==t[i]); n[i]=j; } } void Kmp(){ for(int i=1,j=0;i<=x;i++){ while(j&&s[i]!=t[j+1]) j=n[j]; j+=(s[i]==t[j+1]); if(j==y) printf("%d\n",i-y+1),j=n[j]; } } int main(){ cin>>(s+1)>>(t+1); x=strlen(s+1),y=strlen(t+1); Init(); Kmp(); for(int i=1;i<=y;i++) printf("%d ",n[i]); return 0; }


测评信息: