当前位置: 首页 > news >正文

详细介绍:P3375 【模板】KMP

测试链接

题目描述

给出两个字符串 s 1 s_1 s1 s 2 s_2 s2,若 s 1 s_1 s1 的区间 [ l , r ] [l, r] [l,r] 子串与 s 2 s_2 s2 完全相同,则称 s 2 s_2 s2 s 1 s_1 s1 中出现了,其出现位置为 l l l
现在请你求出 s 2 s_2 s2 s 1 s_1 s1 中所有出现的位置。

定义一个字符串 s s s 的 border 为 s s s 的一个 s s s 本身的子串 t t t,满足 t t t 既是 s s s 的前缀,又是 s s s 的后缀。
对于 s 2 s_2 s2,你还需要求出对于其每个前缀 s ′ s' s 的最长 border t ′ t' t 的长度。

输入格式

第一行为一个字符串,即为 s 1 s_1 s1
第二行为一个字符串,即为 s 2 s_2 s2

输出格式

首先输出若干行,每行一个整数,按从小到大的顺序输出 s 2 s_2 s2 s 1 s_1 s1 中出现的位置。
最后一行输出 ∣ s 2 ∣ |s_2| s2 个整数,第 i i i 个整数表示 s 2 s_2 s2 的长度为 i i i 的前缀的最长 border 长度。

输入输出样例 #1

输入 #1

ABABABC
ABA

输出 #1

1
3
0 0 1

说明/提示

样例 1 解释

对于 s 2 s_2 s2 长度为 3 3 3 的前缀 ABA,字符串 A 既是其后缀也是其前缀,且是最长的,因此最长 border 长度为 1 1 1

数据规模与约定

本题采用多测试点捆绑测试,共有 4 个子任务

  • Subtask 0(30 points): ∣ s 1 ∣ ≤ 15 |s_1| \leq 15 s115 ∣ s 2 ∣ ≤ 5 |s_2| \leq 5 s25
  • Subtask 1(40 points): ∣ s 1 ∣ ≤ 1 0 4 |s_1| \leq 10^4 s1104 ∣ s 2 ∣ ≤ 1 0 2 |s_2| \leq 10^2 s2102
  • Subtask 2(30 points):无特殊约定。
  • Subtask 3(0 points):Hack。

对于全部的测试点,保证 1 ≤ ∣ s 1 ∣ , ∣ s 2 ∣ ≤ 1 0 6 1 \leq |s_1|,|s_2| \leq 10^6 1s1,s2106 s 1 , s 2 s_1, s_2 s1,s2 中均只含大写英文字母。

题解

#include 
using namespace std;
const int N=1e6+10;
typedef long long ll;
int n;
int kmp[N];
int la,lb,j;
char a[N];
char b[N];
void solve()
{cin>>a+1;cin>>b+1;j=0;int la = strlen(a+1);int lb = strlen(b+1);for(int i=2;i<=lb;i++){while(j&&b[j+1]!=b[i])j = kmp[j];if(b[j+1]==b[i])j++;kmp[i]=j;}j = 0;for(int i=1;i<=la;i++){while(j&&b[j+1]!=a[i])j=kmp[j];if(b[j+1]==a[i])j++;if(j==lb){cout<>t;while(t--){solve();}return 0;
}
http://www.zskr.cn/news/45725.html

相关文章:

  • 基于DP1323EL的电动车解锁方案:超高速读写,提升电动车一键解锁体验
  • 最强LLM生成代码也会出错?
  • 张量与向量
  • 实用指南:LLMs-from-scratch :KV 缓存
  • ubuntu16.04安装CUDA驱动 - 小
  • 2025年11月太阳能板生产厂家排名前十榜单:深圳精益太阳能板引领行业
  • QOJ6608 Descent of Dragons
  • vue实现T型二维表格
  • 2025年深圳救护车运转公司权威推荐榜单:正规救护车出租/急救车出租/出租救护车源头公司精选
  • docker安装mysql/Redis/nacos/minio/es/xxl-job
  • re-BABYRE-攻防世界
  • 二维数组去重
  • 2025年三相滤波器源头厂家权威推荐榜单:EMI电源滤波器/防雷滤波器/电源滤波器源头厂家精选
  • UT010029: Stream is closed
  • GD32VW553-IOT V2 测评和移植 - 实践
  • 2025年销量高的前置过滤器口碑推荐榜
  • 2025年台湾铨盛仪表公司口碑推荐榜
  • 2025年挤压铝型材推荐榜单
  • 高端UI设计公司的“审美模型”:如何让界面更有记忆点?
  • 2025年智能中高考加盟电话供应商怎么选择
  • 2025年11月10日
  • 2025年想象力教育科技有限公司推荐口碑排行
  • GPS北斗卫星授时器:安徽京准提速时空精准网络
  • 线性特征和非线性特征
  • 算法系列教程:1. BFS求无向无权图最短路径
  • 2025年靠谱的装修品牌权威推荐
  • word导出图表 - IT
  • 2025年国内装修工程队排名:徐州领先企业一站式服务解析
  • 2025年平床身数控车床生产厂家口碑排行榜
  • 带着弟弟卖红薯