HDU-2087 剪花布条 字符串问题 KMP算法 查匹配子串
题目链接:https://cn.vjudge.net/problem/HDU-2087
题意
中文题咯
一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?
思路
裸题咯,就是贴一下模版,等下好整理
提交过程
| AC | 注意maxn大小 | 
代码
#include <cstring>
#include <cstdio>
const int maxn=1e6+20, maxm=1e4+20;
char P[maxm], T[maxn];
int fail[maxm];
void getFail(int m){
	fail[0]=fail[1]=0;
	for (int i=1; i<m; i++){
		int j=fail[i];
		while (j && P[j]!=P[i]) j=fail[j];
		fail[i+1]=((P[i]==P[j])?j+1:0);
	}
}
int count(int n, int m){
	int cnt=0;
	getFail(m);
	for (int i=0, j=0; i<n; i++){
		while (j && T[i]!=P[j]) j=fail[j];
		if (P[j]==T[i]) j++;
		if (j==m){
			cnt++; j=0;
		}
	}return cnt;
}
int main(void){
	while (scanf("%s", T)==1 && T[0]!='#'){
		scanf("%s", P);
		printf("%d\n", count(strlen(T), strlen(P)));
	}
	return 0;
}
| Time | Memory | Length | Lang | Submitted | 
|---|---|---|---|---|
| 15ms | 1216kB | 601 | G++ | 2018-08-02 09:59:51 | 
HDU-2087 剪花布条 字符串问题 KMP算法 查匹配子串的更多相关文章
- HDU 2087 剪花布条 (简单KMP或者暴力)
		剪花布条 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ... 
- HDU 2087 剪花布条(字符串匹配,KMP)
		HDU 2087 剪花布条(字符串匹配,KMP) Description 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出 ... 
- HDU 2087 剪花布条 (字符串哈希)
		http://acm.hdu.edu.cn/showproblem.php?pid=2087 Problem Description 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图 ... 
- HDU 2087 - 剪花布条 - [KMP算法]
		题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2087 Time Limit: 1000/1000 MS (Java/Others) Memory Li ... 
- HDU    2087   剪花布条   (KMP  不允许重叠的匹配)
		题目链接 Problem Description 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? Inp ... 
- HDU 2087 剪花布条【在字符串中不可重叠地寻找子串数量】
		一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? Input输入中含有一些数据,分别是成对出现的花布条和 ... 
- hdu 2087剪花布条 (KMP入门 子串出现的次数和子串个数)
		剪花布条 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 题意:求模式串在主串中出现的次数,与模式串匹配的子串之间不可重叠. 思路:用kmp算法解决,在匹 ... 
- 剪花布条---hdu2087(kmp模板)
		题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2087 kmp模板题: #include <cstdio> #include <cst ... 
随机推荐
- Comparison of programming languages
			The following table compares general and technical information for a selection of commonly used prog ... 
- SQL日期数据格式的处理
			sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-0 ... 
- 根据 thread id 停止一个线程
			出自 https://github.com/Bogdanp/dramatiq/blob/master/dramatiq/middleware/threading.py#L62 thread_id = ... 
- 用 Java 技术创建 RESTful Web (服务 JAX-RS:一种更为简单、可移植性更好的替代方式)
			作者: Dustin Amrhein, 软件工程师, IBM Nick Gallardo, 软件工程师, IBM 出处: http://www.ibm.com/developerworks/cn/we ... 
- 普通页面使用vue.js心得
			在写本文之前要问自己几个问题,来说明为什么要这么做: 为什么在html中使用vue.js? vue.js已经趋于成熟,个人感觉比jquery要好用的多,但是在node环境下使用vue.js不用使用SS ... 
- 为什么在index.jsp里面引入了common.js,在item-add.jsp以及其他一些jsp文件里面就不需要引入common.jsne ?
			那是因为,index.jsp页面的根节点是body,hrml.是一个完整的网页.那我们再看item-add.jsp页面,他节点是div,只是一个html的片段,并不是一个完整的网页,在easyUI中, ... 
- JS数组中的indexOf方法
			前言 这两天在家中帮朋友做项目,项目中使用了数组的indexOf 方法,找到了一篇文章,感觉非常不错,顺便整理下以防链接丢失. 相信说到 indexOf 大家并不陌生,判断字符串是否包涵子字符串时特别 ... 
- W10如何开启LinuxBash及安装Ubuntu
			W10如何开启LinuxBash的功能 1)开启开发人员模式 2)启动部分windows功能 完成后重启系统 然后在cmd中输入bash按命令操作即可使用bash命令 3)下载安装ubuntu lxr ... 
- ADO.NET (二)—— ADO和ADO .NET对照
			ADO.NET (二)-- ADO和ADO .NET对照 我们知道ADO.NET的两大核心组件各自是Data Provider和DataSet.假设说 DataSet是ADO.NET的心 ... 
- Baby_Step,Gaint_Step(分析具体解释+模板)
			下面是总结自他人博客资料.以及本人自己的学习经验. [Baby_Step,Gaint_Step定义] 高次同余方程. BL == N (mod P) 求解最小的L.因为数据范围非常大,暴力不行 这里用 ... 
