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

【ACWing】4187. 剪花布条

题目地址:

https://www.acwing.com/problem/content/4190/

一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?

输入格式:
输入数据为多组数据,读取到#字符时结束。每组数据仅有一行,为由空格分开的花布条和小饰条。花布条和小饰条都是用可见ASCII字符表示的,不会超过1000 10001000个字符。

注意:这个#应为单个字符。若某字符串开头有#,不意味着读入结束!

输出格式:
对于每组数据,输出一行一个整数,表示能从花纹布中剪出的最多小饰条个数。

数据范围:
对于全部数据,字符串长度≤ 1000 ≤10001000

KMP。代码如下:

#include<iostream>#include<vector>usingnamespacestd;intmain(){ios::sync_with_stdio(false);cin.tie(nullptr);string s,p;staticautobuild_ne=[](string&p){intn=p.size()-1;vector<int>ne(p.size());for(inti=2,j=0;i<=n;i++){while(j&&p[i]!=p[j+1])j=ne[j];if(p[i]==p[j+1])j++;ne[i]=j;}returnne;};while(cin>>s){if(s=="#")break;cin>>p;intn=s.size(),m=p.size();s=" "+s;p=" "+p;autone=build_ne(p);intres=0;for(inti=1,j=0;i<=n;i++){while(j&&s[i]!=p[j+1])j=ne[j];if(s[i]==p[j+1])j++;if(j==m){res++;j=0;}}printf("%d\n",res);}}

每个数据时间复杂度O ( l s + l p ) O(l_s+l_p)O(ls+lp),空间O ( l p ) O(l_p)O(lp)

http://www.cnnetsun.cn/news/60872.html

相关文章:

  • 电商系统中的日期转换实战:Date与LocalDate互转
  • 1小时开发:用Pytdx打造简易股票分析看板
  • ms.js终极指南:3分钟掌握JavaScript时间转换技巧
  • 深入Windows系统底层:从注册表到服务开发的进阶指南
  • 归档发票,别再一个一个的整理了!有了它,一次帮你节省一个小时!
  • AI如何帮你高效使用git clone -b命令
  • GRUB引导问题:小白也能懂的修复指南
  • Step3震撼开源:321B参数多模态模型如何重塑AI推理成本与效率
  • WSL跨系统AI服务实战:打通本地大模型与Open Interpreter的无缝连接
  • 30分钟用computeIfAbsent打造缓存系统原型
  • 258M参数引爆文档智能革命:IBM Granite Docling重塑企业内容处理范式
  • Vue 3响应式系统深度解析与性能优化实战指南
  • 一套完整的 RAG 脚手架,附完整代码,基于LangChain
  • DeepSeek-V3.2双版本发布:开源模型首次逼近Gemini性能,推理能力达GPT-5水平
  • HTTP报错踩坑实录:4xx/5xx核心原因+Java项目解决方案(Javaer必藏)
  • 5个实战技巧让AI秒懂你的需求:思维链提示工程深度解析
  • 如何高效下载M3U8视频文件:完整指南与实用技巧
  • AI如何帮你高效拆分Python字符串?
  • GLM-4.5智能体大模型:重新定义AI生产力边界
  • 金融软件测试:严苛标准下的安全与性能挑战
  • 软件架构师的成长之路
  • 90亿参数逆袭:GLM-Z1-9B重新定义轻量级大模型性能边界
  • Rust GUI终极性能优化指南:编译时间缩短40%的完整配置方案
  • 3步搞定llama.cpp SYCL后端:让Intel GPU火力全开运行大模型
  • SGMICRO圣邦微 74LVC1G32XN5G/TR NA 逻辑门
  • Maxun元数据过滤终极指南:从入门到精通的全流程解析
  • Higress云原生网关Helm部署实战:企业级高效配置指南
  • DTIIA 5.0 输送机系统设计说明
  • JavaEE进阶——SpringBoot统一功能处理实战指南
  • leetcode 2110. 股票平滑下跌阶段的数目 中等