HDOJ2087 剪花布条(kmp)

Vite与Webpack路径配置大不同:从Vue2迁移到Vue3必须知道的public目录使用技巧 本文详细解析了Vite与Webpack在public目录路径配置上的核心差异,为Vue2迁移到Vue3的开发者提供实用指南。重点对比了两种构建工具的资源处理逻辑,给出典型编译警告的解决方案,并分享路径适配表与高级优化技巧,帮助开发者高效完成技术栈升级。 阅读详情

题目链接:点击打开链接


给出两个字符串,问你后面的字符串在前面的字符串中出现了几次。

求出小饰条的nxt数组,然后用花纹布匹配,每匹配成功一次j就归零一次,避免出现多次无用匹配的错误。


AC代码:

#include "iostream"
#include "cstdio"
#include "cstring"
#include "algorithm"
using namespace std;
const int MAXN = 1005;
char s1[MAXN], s2[MAXN];
int nxt[MAXN], len1, len2;
void get_nxt()
{
	nxt[1] = 0;
	int j = 0;
	for(int i = 2; i <= len2; ++i) {
		while(j > 0 && s2[j + 1] != s2[i])
			j = nxt[j];
		if(s2[j + 1] == s2[i]) j++;
		nxt[i] = j;
	}
}
int kmp()
{
	int j = 0, ans = 0;
	for(int i = 1; i <= len1; ++i) {
		while(j > 0 && s2[j + 1] != s1[i])
			j = nxt[j];
		if(s2[j + 1] == s1[i]) j++;
		if(j == len2) {
			ans++;
			j = 0;
		}
	}
	return ans;
}
int main(int argc, char const *argv[])
{
	while(scanf("%s", s1 + 1) != EOF && s1[1] != '#') {
		scanf("%s", s2 + 1);
		memset(nxt, 0, sizeof(nxt));
		len1 = strlen(s1 + 1), len2 = strlen(s2 + 1);
		get_nxt();
		printf("%d\n", kmp());
	}
	return 0;
}

 

RU.EXE实用指南:从基础操作到高级调试技巧 本文是RU.EXE(RW Everything)的实用指南,详细介绍了这款硬件调试工具从基础操作到高级技巧的全过程。文章阐述了RU.EXE作为直接读写硬件寄存器、内存和PCI配置空间的强大工具,如何帮助硬件工程师和开发人员高效进行底层系统调试与故障排查,并强调了安全操作的重要性。 阅读详情

相关推荐

PSM-DID实战指南:Stata代码解析与案例应用

本文详细解析PSM-DID方法在Stata中的实战应用,从理论到代码实现全面覆盖。通过倾向得分匹配(PSM)和双重差分(DID)的结合,有效解决政策评估中的选择偏差问题。文章提供完整的Stata命令代码、样例数据处理技巧和案例应用,帮助研究者准确评估政策效果。

vulkan6gpu的博客 791

HDOJ 2087 剪花布条(KMP)

剪花布条 Problem Description 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?   Input 输入中含有一些数据,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种

nudt_oys的博客 369

使用Docker搭建MaxKB智能体平台

【代码】使用Docker搭建MaxKB智能体平台。

janthinasnail的博客 708

HDU 2087 剪花布条(KMP:贪心)

HDU 2087 剪花布条(KMP:简单应用) http://acm.hdu.edu.cn/showproblem.php?pid=2087 题意:给你两个串S和T,问你S中包含了多少个T串,其中包含的T串不能重叠. 分析:        直接用KMP算法,用T模式串去匹配S主串即可,但是当匹配成功的时候要看看当前匹配点离上一个匹配点是不是距离差>=T的长度. AC代码: #inclu

code 2467

基于matlab版本的三维直流电法反演算法

可以使用RESINVM3D工具包等现成的MATLAB工具进行三维直流电法反演。反演问题求解:基于MATLAB的反演问题求解算法实现和应用,包括反演问题数值模拟、反演问题参数优化和反演问题结果分析。希望这个代码示例能帮助你入门三维直流电法反演。如果有更具体的需求或问题,可以进一步探讨。反演过程中可能需要调整正则化参数和优化算法的设置。需要根据实际问题实现,可能涉及复杂的数值计算。

ytttr873的博客 668

ONNC Open Neural Network Compiler 开源神经网络编译器 一个 开源、模块化、可重用编译器算法和工具链的库,专门针对深度学习加速器(DLA)部署导入ONNX模型

ONNC是一个集合了开源、模块化、可重用编译器算法和工具链的库,专门针对深度学习加速器(DLA)。ONNC从底层开始构建,旨在将ONNX中间表示(IR)翻译成专有DLA代码。其软件架构设计强调可移植性和可重用性,从而简化了开发新后端的工作。上图展示了ONNC软件栈的顶层框图。软件栈从导入ONNX计算图模型到输出相应的硬件二进制文件,展示了各个功能块。

万有文的博客 1992

HDOJ 2087 剪花布条

题意:给出主串与模式串,找出主串中不重叠的模式串的个数 链接:http://acm.hdu.edu.cn/showproblem.php?pid=2087 思路:KMP,每找到一组匹配时,改变起点位置即可 注意点:无 以下为AC代码: Run ID Submit Time Judge Status Pro.ID Exe.Time Exe.Memory

luminous11的专栏 638

从零开始用飞牛fnas搭建集成DeepSeek-R1的远程AI工作台

从零开始用飞牛fnas搭建集成DeepSeek-R1的远程AI工作台

AI+全栈,AI+应用,实操落地,前沿技术 3806

【HDOJ2087】剪花布条(KMP)

problem 给定字符串A,B。求串A中可以分割出多少个互不相同的串B(不能重叠)。 solution 模板题,没啥好说的。 KMP匹配:如果成功,就把j==0,从头开始匹配,答案累加。 codes #include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;cstring&gt; using namespace s...

小哈里的博客 954

从ESP/ABS选型看轮速传感器:为什么你的车用了AK+PWM+7/14mA三种协议?

本文深入解析了汽车轮速传感器的三种主流协议(7/14mA电流型、PWM型和AK协议型)及其混合应用场景。通过对比不同协议的技术特点、成本效益和工程挑战,揭示了现代车辆采用多种传感器协议背后的设计逻辑,包括成本控制、性能平衡和冗余设计等关键因素。

weixin_29266679的博客 531

《QEMU/KVM源码分析与应用》读书笔记1 —— 第1章 QEMU与KVM概述

《QEMU/KVM源码分析与应用》学习笔记1 —— 第一章 QEMU与KVM概述

phmatthaus的专栏 1984

hdoj 2087 剪花布条

考察点:kmp 的 简单应用     题目大意:输入两个字符串str1,str2,计算出从前面的字符串str1中能够剪出多少个str2,并输出。     题目解析: 典型的kmp应用,每一次匹配后如果相同,次数加1,不过由于是剪布条,所以一旦剪出符合的str2,只能从剩下的串里面继续匹配,直到最后。 简单来说就是,str2不能重叠出现,一旦匹配成功就要从后面的在重新开始匹配工作。

csdn_lan的博客 553

logisim中,如何设计一个位于十字路口的交通信号灯控制系统?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值。

**My Coding Family** 1342

HDOJ 2087 剪花布条 [KMP]

//题目描述:HDOJ 2087 剪花布条 //问题抽象:典型的字符串匹配问题//核心算法:KMP//时间复杂度:O(n+m)#include#includeusing namespace std;const int MaxSize=1000;//计算next[]值,kmp核心void GetNext(string t,int next[]){ int

SKY的专栏 1040

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

hdoj 2087 剪花布条 【kmp】

剪花布条 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 10611    Accepted Submission(s): 6836 Problem Description 一块花布条,里面有些图案,另有一块直接可用的

世界很大 678

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

HDOJ 剪花布条 2087【KMP】

剪花布条 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 10995    Accepted Submission(s): 7059 Problem Description 一块花布条,里面有些图案,另有一块直接可

豫帝哥哥 838

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Hdoj 2087 剪花布条、KMP、水题:【题解】

剪花布条 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 36611 Accepted Submission(s): 22321 Problem Description 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一...

EP的别三日 246

hdoj 2087 剪花布条 【KMP】

剪花布条 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 13328    Accepted Submission(s): 8508 Problem Description 一块花布条,里面有些图案,另有一

平平淡淡才是真 410

HDOJ 2087 剪花布条 (KMP简单题)

剪花布条 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 11266    Accepted Submission(s): 7228 Problem Description 一块花布条,里面有些图案,另有一块直接可用的小饰

滴水穿石,慢慢积累,总会有成果 433

HDOJ 2087 剪花布条(KMP)

剪花布条 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 11305    Accepted Submission(s): 7260 Problem Description 一块花布条,里面有些图案,另有一块直接可用的

Chunzhen的博客 583

hdoj 2087 剪花布条 (简单的KMP匹配)

Problem Description 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?   Input 输入中含有一些数据,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长

笨小孩的专栏 732

[HDOJ 2087] 剪花布条 [KMP]

给S1和S2,求S1可以分割出多少个

jinzhao1994的专栏 624

hdoj 2087 剪花布条(kmp)

kmp模板题,数据很弱,暴力也能过。 kmp代码: #include using namespace std; const int maxn = 1005; char s[maxn], t[maxn]; int Next[maxn], ans; void makeNext(void) { int len = strlen(s); Next[0] = Next[1] =

CillyB的博客 571

[KMP]hdoj 2087:剪花布条

大致题意:    给出一个模式串,一个文本串。求这个模式串在文本串中无覆盖的出现了多少次。   大致思路:    基础KMP,加上一个last限制。   #include&lt;iostream&gt; #include&lt;cstring&gt; #include&lt;cstdio&gt; using namespace std; const int nMax=1000...

手上有剑,心中有爱 162

hdoj-2087 剪花布条(Kmp)

剪花布条 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 23449    Accepted Submission(s): 14596 Problem Description 一块花布条,里面有些图案,另有一块直接

落辰哀的博客 375

hdoj 2087 剪花布条 【kmp(变形题)】

剪花布条 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 11630    Accepted Submission(s): 7478 Problem Description 一块花布条,里面有些图案,另有一块直接可用的

dxx_111的博客 672
上一篇: HDOJ2594 Simpsons’ Hidden Talents(kmp)
下一篇: 数据结构实验1(顺序表逆置以及删除)
GKHack
博客等级 码龄11年 48粉丝 291原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值