【KMP】剪花布条
KMP算法
又水了一题。算是巩固复习吧。
Problem Description
Input
Output
Sample Input
abcde a3
aaaaaa aa
#
Sample Output
0
3
Author
Source
#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
char a[],b[];
int Next[]; void GetNext(int lb){
int i=,j=-;
Next[]=-;
while(i<lb){
if(j==-||b[i]==b[j]){
i++;j++;Next[i]=j;
}
else
j=Next[j];
}
} void KMP(int la,int lb){
int i=,j=,n=;
while(i<la&&j<lb){
if(j==-||a[i]==b[j]){
i++;j++;
}
else
j=Next[j];
if(j==lb){
n++;
j=; //注意j=0
}
}
cout<<n<<endl;
} int main()
{
int la,lb;
while(cin>>a&&a[]!='#'){
cin>>b;
la=strlen(a);
lb=strlen(b);
GetNext(lb);
KMP(la,lb);
}
return ;
}
【KMP】剪花布条的更多相关文章
- 剪花布条(kmp)
欢迎参加——每周六晚的BestCoder(有米!) 剪花布条 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
- hdu_2087 剪花布条(kmp)
剪花布条 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- hdu 2087 剪花布条 KMP多次匹配
剪花布条 Problem Description 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? I ...
- 剪花布条[HDU2087]
剪花布条 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- hdu2087 剪花布条
剪花布条 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- 剪花布条 HDU - 2087
剪花布条 HDU - 2087 要求各个匹配出来的子串不重叠的kmp.实际上直接贪心从前往后找,每找到一个就把当前j标为0即可.(一般kmp是标为f[j]) #include<cstdio> ...
- hdoj 2087 剪花布条
剪花布条 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- HDU-2087 剪花布条
http://acm.hdu.edu.cn/showproblem.php?pid=2087 剪花布条 Time Limit: 1000/1000 MS (Java/Others) Memory ...
- HDU——2087剪花布条
剪花布条 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
随机推荐
- Drawable 着色的后向兼容方案
看到 Android Weekly 最新一期有一篇文章:Tinting drawables,使用 ColorFilter 手动打造了一个TintBitmapDrawable,之前也看到有些文章使用这种 ...
- JY05-JavsScript-JS基础01
JavaScript第一天 1.前端三层 HTML 结构层 语义 骨架 css 表现层 审美 衣服 JavsScript 行为层 行为交互 动作 2.转义字符\r\n\t \r return 回 ...
- 关于char与varchar,varchar2的区别
http://zhidao.baidu.com/question/220360696.html?qbl=relate_question_0&word=char%BA%CDvarchar2%B5 ...
- oracle遍历游标
1,while循环 declare v_tname ); cursor c_tname is select a.TABLE_NAME from user_tables a where a.TABLES ...
- MD5加密运算
//MD5 对字符串的加密 -(void)demo1 { NSString *str = @"love"; //对字符串进行MD5加密 str = str.md5String; N ...
- UIWebView禁止点击后跳转
#pragma mark 禁止webview中的链接点击 - (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRe ...
- linux初识-01简介
什么是linux: Linux是一个自由的,免费的,源码开发的操作系统Linux的特点: 开放性.多用户,多任务,具有丰富的网络功能 可靠的系统安全 良好的可移植性 良好的用户界面(命令界面和图形界面 ...
- explode 结合 str_replace对获取的URL处理手记
今天更新我的一个FKQQ的程序.我的一个PHP文件接收到HQ的QQ号码的字符串.因为获取的内容有大量的垃圾内容所以我用str_replace做了一个处理代码如下: $xx1 = preg_replac ...
- memcache实例
<?php class demo { private $str_attr; private $int_attr; public function __get($name) { return $t ...
- 操作css样式
<script type="text/javascript"> //产生一个四位的验证码. function createCode(){ var datas = ['A ...