【题意概述】

【解题思路】

  从左往右找,看有几个匹配的字符串,但要注意例如 aaaaaa  aa的输出是3 而不是5,可以这样理解:画布需要减去,一旦减去也就没有了的

【AC】

 #include<bits/stdc++.h>
using namespace std; char p[],s[];
int pLen,sLen,Next[],ans; void GetNext()
{
Next[] = -;
int k = -;
int j = ;
while (j < pLen )
{
//p[k]表示前缀,p[j]表示后缀
if (k == - || p[j] == p[k])
{
++k;
++j;
Next[j] = k;
}
else
{
k = Next[k];
}
}
} int KmpSearch()
{
int i = ;
int j = ;
int ans = ; while (i !=sLen && j != pLen)
{
//①如果j = -1,或者当前字符匹配成功(即S[i] == P[j]),都令i++,j++
if (j == - || s[i] == p[j])
{
i++;
j++;
}
else
{
//②如果j != -1,且当前字符匹配失败(即S[i] != P[j]),则令 i 不变,j = next[j]
//next[j]即为j所对应的next值
j = Next[j];
} if(j == pLen) {
ans++;
j = ;
} } return ans;
} int main() { while(~scanf("%s", s)&&s[] != '#') {
ans = ;
scanf("%s",p);
pLen = strlen(p);
sLen = strlen(s);
GetNext();
ans = KmpSearch();
printf("%d\n",ans);
} }

【kmp】 剪花布条 HDU - 2087的更多相关文章

  1. 剪花布条 HDU - 2087

    剪花布条 HDU - 2087 要求各个匹配出来的子串不重叠的kmp.实际上直接贪心从前往后找,每找到一个就把当前j标为0即可.(一般kmp是标为f[j]) #include<cstdio> ...

  2. 剪花布条 HDU - 2087(kmp,求不重叠匹配个数)

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

  3. (KMP)剪花布条 -- hdu -- 2087

    http://acm.hdu.edu.cn/showproblem.php?pid=2087 剪花布条 Time Limit: 1000/1000 MS (Java/Others)    Memory ...

  4. hdu 2087 剪花布条 KMP多次匹配

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

  5. HDU——2087剪花布条

    剪花布条 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  6. 剪花布条(kmp)

    欢迎参加——每周六晚的BestCoder(有米!) 剪花布条 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

  7. hdu_2087 剪花布条(kmp)

    剪花布条 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  8. hdoj 2087 剪花布条

    剪花布条 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  9. HDU-2087 剪花布条

    http://acm.hdu.edu.cn/showproblem.php?pid=2087 剪花布条 Time Limit: 1000/1000 MS (Java/Others)    Memory ...

随机推荐

  1. python基础——匿名函数及递归函数

    python基础--匿名函数及递归函数 1 匿名函数语法 匿名函数lambda x: x * x实际上就是: def f(x): return x * x 关键字lambda表示匿名函数,冒号前面的x ...

  2. Django快速入门

    Django 是用 Python 写的一个自由和开放源码 web 应用程序框架.web框架是一套组件,能帮助你更快.更容易地开发web站点.当你开始构建一个web站点时,你总需要一些相似的组件:处理用 ...

  3. UVA-10714 Ants---蚂蚁模拟

    题目链接: https://vjudge.net/problem/UVA-10714 题目大意: 给你一个长为L厘米的木棍在上面有n只蚂蚁,蚂蚁的爬行时间均为1厘米/秒,两只蚂蚁先遇会立即调转方向,调 ...

  4. ansible批量加用户

    ansible批量加用户 1.生成密码 pip install passlib python -c "from passlib.hash import sha512_crypt; print ...

  5. 使用supervisor管理进程

    Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动.重启.关闭进程(不仅仅是 Python 进程).除了对单个进程的 ...

  6. 我是如何在公司项目中使用ESLint来提升代码质量的

    ESLint:你认识我吗 ESLint是一个语法规则和代码风格的检查工具. 和学习所有编程语言一样,想要入门ESLint,首先要去它的官网看看:https://eslint.org/. ESLint的 ...

  7. 通过TCP实现显示屏截图请求及回传

    在很多业务场景下,需要监视显示屏画面.在实时性要求不高的情况下,可以通过定时对显示屏进行截图及回传实现. 本文通过C#中提供的TCP通信功能,对该功能的实现进行简单描述. 首先,该功能的实现分为客户端 ...

  8. [HNOI2010]MATRIX 矩阵

    Description Input 第一行包含三个正整数N M P表示矩阵的行数列数以及每个数的范围,接下来N行每行包含M个非负整数,其中第i行第j个数表示以格子(i,j)为右下角的2*2子矩阵中的数 ...

  9. ●BZOJ 4318 OSU!

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=4318题解: 期望dp 如果我们能够得到以每个位置结尾形成的连续1的长度的相关期望,那么问题就 ...

  10. UOJ #236. 【IOI2016】railroad

    Description Anna 在一个游乐园工作.她负责建造一个新的过山车铁路.她已经设计了影响过山车速度的 nn 个特殊的路段(方便起见标记为 00 到 n−1n−1).现在 Anna 必须要把这 ...