题意:求w串在T串中的出现次数。(不可重叠出现)

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cctype>
#include<cmath>
#include<iostream>
#include<sstream>
#include<iterator>
#include<algorithm>
#include<string>
#include<vector>
#include<set>
#include<map>
#include<stack>
#include<deque>
#include<queue>
#include<list>
#define lowbit(x) (x & (-x))
const double eps = 1e-8;
inline int dcmp(double a, double b){if(fabs(a - b) < eps) return 0;return a > b ? 1 : -1;
}
typedef long long LL;
typedef unsigned long long ULL;
const int INT_INF = 0x3f3f3f3f;
const int INT_M_INF = 0x7f7f7f7f;
const LL LL_INF = 0x3f3f3f3f3f3f3f3f;
const LL LL_M_INF = 0x7f7f7f7f7f7f7f7f;
const int dr[] = {0, 0, -1, 1, -1, -1, 1, 1};
const int dc[] = {-1, 1, 0, 0, -1, 1, -1, 1};
const int MOD = 1e9 + 7;
const double pi = acos(-1.0);
const int MAXN = 1000 + 10;
const int MAXT = 1000000 + 10;
using namespace std;
char s1[MAXN], s2[MAXN];
int len1, len2;
int Next[MAXN];
void getNext(){Next[0] = 0;for(int p = 1, k = 0; p < len2; ++p){while(k > 0 && s2[p] != s2[k]) k = Next[k - 1];if(s2[p] == s2[k]) ++k;Next[p] = k;}
}
int kmp(){getNext();int cnt = 0;for(int p = 0, k = 0; p < len1; ++p){while(k > 0 && s1[p] != s2[k]) k = Next[k - 1];if(s1[p] == s2[k]) ++k;if(k == len2){++cnt;k = 0;}}return cnt;
}
int main(){while(scanf("%s", s1) == 1){if(strcmp(s1, "#") == 0) return 0;scanf("%s", s2);len1 = strlen(s1);len2 = strlen(s2);printf("%d\n", kmp());}return 0;
}

  

转载于:https://www.cnblogs.com/tyty-Somnuspoppy/p/7488473.html

HDU - 2087 剪花布条(kmp)相关推荐

  1. HDU 2087 剪花布条 KMP入门

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

  2. 【HDU】2087 剪花布条 (KMP算法的应用)

    可以参考:从头彻尾彻底理解KMP 可以用朴素的模式匹配算法,也可以使用KMP算法,KMP算法所用的时间较短 普通版 #include <iostream> #include <str ...

  3. HDU 2087剪花布条 KMP

    KMP算法入门题  哥第一次写KMP惭愧啊,惭愧getnext写得蛋痛,后面的KMP部分更蛋痛.改了N久 #include<stdio.h> #include<string.h> ...

  4. (剪花布条、客似云来)笔试强训

    博主简介:想进大厂的打工人 博主主页:@xyk: 所属专栏: JavaEE初阶 两道编程题~~~ 目录 文章目录 一.[编程题]客似云来 二.[编程题]剪花布条 一.[编程题]客似云来 链接:客似云来 ...

  5. 【Java版oj】day33剪花布条、客似云来

    目录 一.剪花布条 (1)原题再现 (2)问题分析 (3)完整代码 二.客似云来 (1)原题再现 (2)问题分析 (3)完整代码 一.剪花布条 (1)原题再现 剪花布条__牛客网         一块 ...

  6. Day 33 剪花布条+客似云来

    目录 1.剪花布条 2.客似云来 1.剪花布条 链接:剪花布条__牛客网 来源:牛客网 [编程题]剪花布条 热度指数:1327 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M, ...

  7. 【HDU - 2087】 剪花布条(直接模拟 or KMP)

    题干: 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? Input输入中含有一些数据,分别是成对出现的花 ...

  8. 剪花布条(字符串,C++)

    题目描述 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? 输入格式 输入数据为多组数据,读取到 # 字符 ...

  9. hdu2087 剪花布条 暴力/KMP

    在字符串中不可重叠地寻找子串数量,暴力/KMP 1 #include<stdio.h> 2 #include<string.h> 3 4 int main(){ 5 char ...

  10. hdu 2087 剪花布条

    http://acm.hdu.edu.cn/showproblem.php?pid=2087 水题,注意细节就可以了. 代码如下: #include<iostream> #include& ...

最新文章

  1. 周志华领衔撰写,历时4年,宝箱书问世!文末送书
  2. 手势模型和Angular Material的实现
  3. linux大内存拷贝优化,Linux 下基础设施及系统网络优化
  4. 网页防篡改技术_阿里云云安全中心和web应用防火墙的网页防篡改功能有什么不同...
  5. 中年人需要写个遗嘱吗?
  6. 期权水平套利可行分析(20191204)[博]
  7. matplotlib图表显示中文三种办法
  8. 无人驾驶时代指日可待?2035年将取代传统汽车
  9. ubuntu 设置保护色
  10. Dockerfile 中的 CMD 与 ENTRYPOINT
  11. dw添加下拉菜单_dreamweaver cs6中网页制作一个带有列表下拉菜单的详细操作方法...
  12. linux安装vim
  13. 最短路径BFS算法matlab,数据结构笔记——最短路径BFS算法
  14. matlab help函数用法,帮你快速入门MATLAB(基本知识篇)
  15. 拓扑图绘制工具开源_3个用于绘制家谱的开源家谱工具
  16. 苹果手机怎么设置专属铃声?看一遍就能学会的超简单教程
  17. 联想微型计算机B3O5,触摸电视功能 联想B3系列一体电脑评测
  18. 2021年五一赛A题-疫苗生产优化问题
  19. 小程序复用公众号资质快速认证
  20. Libra,一场赛博朋克噩梦!

热门文章

  1. JDK8编译,JDK8运行错误
  2. 如何正确获取安卓内置SD卡的路径
  3. day21保护操作系统
  4. gcc/g++使用及gdb调试新手入门
  5. JDK+Eclipse安装
  6. VS C#/C++ 调试----屏蔽已加载
  7. windows 搭建简单c++环境【mingw】
  8. asp程序ajax怎么写,ASP+AJAX+ACCESS数据库实例讲解三个步骤分享
  9. python中比较重要的几个函数_python几个重要的内置函数
  10. BOOST库介绍(七)——时间处理相关的库