杭电 2087 KMP算法的应用 求出现次数
2011-11-04 07:09
169 查看
一道KMP算法应用的题,,不知道算不算水题,,,,我是昨天晚上9点多看的这道题,,写了一下,没写出来。昨天晚上回寝室后一下写了4个实验报告册,写到12点多,,,今天早上又想了想,,,1Y。题目:
Total Submission(s): 3083 Accepted Submission(s): 2079
[/b]
Problem Description
一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?
Input
输入中含有一些数据,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长。如果遇见#字符,则不再进行工作。
Output
输出能从花纹布中剪出的最多小饰条个数,如果一块都没有,那就老老实实输出0,每个结果之间应换行。
Sample Input
Sample Output
ac代码:
剪花布条
[b]Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3083 Accepted Submission(s): 2079
[/b]
Problem Description
一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?
Input
输入中含有一些数据,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长。如果遇见#字符,则不再进行工作。
Output
输出能从花纹布中剪出的最多小饰条个数,如果一块都没有,那就老老实实输出0,每个结果之间应换行。
Sample Input
abcde a3 aaaaaa aa #
Sample Output
0 3
ac代码:
#include <iostream> #include <string> #include <string.h> #include <cstdio> using namespace std; const int N=1005; char s ,ss ,nextt ; int len1,len2; void getnext(){ int i=1,j=0; nextt[1]=0; while(i<len2){ if(j==0||ss[i]==ss[j]){ ++i;++j; if(ss[i]!=ss[j]) nextt[i]=j; else nextt[i]=nextt[j]; } else j=nextt[j]; } } int kmp(){ int num=0,k=1; int i=1,j=1; while(i<=len1){ if(j==0||s[i]==ss[j]){ ++i;++j; } else j=nextt[j]; if(j>len2){ num++;j=1; } } return num; } int main(){ while(scanf("%s",s+1)){ if(s[1]=='#') return 0; scanf("%s",ss+1); memset(nextt,0,sizeof(nextt)); len1=strlen(s+1); len2=strlen(ss+1); getnext(); int count=0; count=kmp(); printf("%d\n",count); } return 0; }
相关文章推荐
- (串的模式匹配4.6.2)POJ 3461 Oulipo(KMP算法的应用——求一个单词在一行文本中的出现次数)
- AC自动机应用 多模式匹配 多个单词在文章中出现的次数-C语言实现
- 杭电acm1219 统计字母出现次数
- 【二分查找】在排序数组中,找出给定数字的出现次数 以及二分其他应用
- KMP算法解决字符串出现次数
- KMP算法求模式串在原串中出现的次数
- AC自动机应用(2)LA 4670出现次数最多的子串
- HDU 2087 剪花布条【KMP,子串出现次数,不可重叠】
- hdoj 3336 Count the string【kmp算法求前缀在原字符串中出现总次数】
- 搜索二叉树应用---判断单词正确与否,简单字典的实现,出现ip次数的统计
- 杭电1004 出现次数最多
- 内存映射文件的应用——查找字符出现的次数
- HDU 2087 剪花布条(模式串在主串中出现的次数主串中子串不可重叠)
- java基础知识回顾之---java String final类普通方法的应用之“子串在整串中出现的次数”
- hdu 2087剪花布条 (KMP入门 子串出现的次数和子串个数)
- EXCEL公式应用:求字符串内某字符出现的次数
- KMP算法 —— next 数组的应用 --- 前缀中最小循环节,最大重复次数
- 【KMP算法】KMP统计子串出现次数
- 使用KMP算法求子串出现次数
- 统计字符流中一个字符串出现的次数- KMP算法