HDU 2087 剪花布条
来源:互联网 发布:mac版office破解 编辑:程序博客网 时间:2024/05/29 11:03
题目链接
题目意思
给你一个文本串A,接着给你一个模式串B。问你最多能从文本串中剪出几个模式串。
解题思路
这就是一道KMP的模板题。我们只要找出文本串中含有的最大的模式串的个数即可。
没啥可说的了,直接看代码吧!
代码部分
#include <iostream>#include <stdio.h>#include <string.h>#include <cstring>#include <algorithm>#include <queue>using namespace std;const int maxn=1e3+10;int nex[maxn];string A,B;void GetNext(string B){ int len_B=B.size(); nex[0]=-1; int k=-1,j=0; while(j<len_B) { if(k==-1||B[j]==B[k]) { ++k; ++j; nex[j]=k; } else k=nex[k]; }}int kmp(string A,string B){ int i=0,j=0; int ans=0; int len_b=B.size(); int n=A.size(); while(i<n) { if(j==-1||A[i]==B[j]) { ++i; ++j; } else j=nex[j]; if(j==len_b) { ans++; j=0; } } return ans;}int main(){ while(cin>>A) { if(A=="#") break; cin>>B; GetNext(B); int sum=kmp(A,B); cout<<sum<<endl; } return 0;}
阅读全文
0 0
- HDU 2087 剪花布条
- HDU 2087 剪花布条
- Hdu 2087 - 剪花布条
- hdu 2087 剪花布条
- HDU 2087 剪花布条
- hdu-2087 剪花布条
- HDU 2087 剪花布条
- hdu 2087 剪花布条
- HDU 2087 剪花布条
- hdu 2087 剪花布条
- HDU 2087 剪花布条
- hdu 2087 剪花布条
- HDU 2087 剪花布条
- hdu 2087 剪花布条
- hdu 2087 剪花布条
- HDU 2087剪花布条
- HDU 2087剪花布条
- HDU 2087 剪花布条
- 工作常用知识点总结
- echarts生成的图表 自适应 不重新生成
- Python常用的标准库以及第三方库有哪些?
- MongoDB 学习笔记
- Android Gradle(3)— FlavorDimensions,构建变体
- HDU 2087 剪花布条
- winform中一些小操作
- Linux系统目录结构以及简单说明
- Nexus刷机教程
- sprinBooot注解
- Java学习,这些技巧不能少
- 指针函数完成交换两个数
- SSL_2293--暗黑游戏(动规练习题)
- Permission denial: writing to secure settings requires android.permission.WRITE_SECURE_SETTINGS