hdu 1686(标准的kmp,可当模板)
/*题意:给两个字符串a,s,判断a在s里出现的个数*/#include <stdio.h>
#include <string.h>int next[10005];
char a[10005];
char s[1000005];
int n,len_a,len_s;void Get_Next()
{a[0] = '#';//因为是a+1,如果a[0]不存在,那strlen(a) = 0 ; !!!!!!!!!!!len_a = strlen(a);len_s = strlen(s);next[1] = 0;int j = 0;for(int i=2;i<=len_a;i++){while(j > 0 && a[j+1] != a[i])// j+1要理解,j因为要连续向前找next[j],而不是j+1j = next[j];if(a[j+1] == a[i])j++;next[i] = j;}
}int Str_Match()
{//跟Get_Next类似,理解后可手写!int j = 0;int num = 0;for(int i=0;i<len_s;i++){while(j>0 && a[j+1]!=s[i])j = next[j];if(a[j+1] == s[i])j++;if(j == len_a - 1){j=next[j];num++;}}return num;
}int main()
{scanf("%d",&n);while(n--){getchar();scanf("%s %s",a+1,s);//!!!!这用的是a+1,为的是字符串位置跟实际位置相对应,函数好写一点Get_Next();printf("%d\n",Str_Match());}return 0;
}
转载于:https://www.cnblogs.com/cykun/archive/2011/02/19/1958627.html
hdu 1686(标准的kmp,可当模板)相关推荐
- HDU 1686 Oulipo【kmp求子串出现的次数】
The French author Georges Perec (1936–1982) once wrote a book, La disparition, without the letter 'e ...
- Oulipo HDU - 1686 (使用扩展kmp进行讨伐!)
题目链接 题意:给你两个字符串s,t.让你求在s中t出现了多少次. 解题思路: kmp做法点这里 使用扩展kmp.构建一个新字符串k=t+▲+s ▲为分隔符,保证不会影响s求z函数. 对k使用扩展km ...
- hdu 1686 Oulipo(kmp)
Problem Description The French author Georges Perec (1936–1982) once wrote a book, La disparition, w ...
- KMP - Oulipo - HDU - 1686
HDU - 1686 The French author Georges Perec (1936–1982) once wrote a book, La disparition, without th ...
- HDU - 1686 Oulipo
https://vjudge.net/problem/HDU-1686 HDU - 1686 Oulipo 题目 分析 AC代码 题目 The French author Georges Perec ...
- tcs标准编写软件_【公益培训】知你所需 | 标准编写格式及TCS模板应用线上公益培训...
企业标准编写的水平及TCS工具使用的能力是实施企业标准化工作的基础.TCS标准编写软件是辅助标准编写的工具性软件,方便标准编写人员快捷准确的编写标准草案,有效提升标准供给质量. 为贯彻落实疫情防控和助 ...
- AT32标准库(BSP)模板建立(开发笔记)
AT32标准库(BSP)模板建立 环境声明: Keil版本:Keil 5.25 芯片型号:AT32F403A AT Pack版本:Pack_Keil_AT32F4xx_V1.3.6 1. 新建一个工程 ...
- Oulipo HDU - 1686 (kmp初见讨伐!)
题目链接 题意:给你两个字符串s,t.让你求在s中t出现了多少次. 解题思路: 先写前缀函数(前缀函数的写法点这里了解) 然后就是常规KMP模板了.统计答案时重置pos_t的位置. 错误原因:对重置p ...
- HDU 1686 [KMP] --by二汪
题目链接 /* --------------KMP算法-------------- 用于在字符串S中匹配字符串T注: 此模板的字符串都是从第0位开始存的 但返回和输出的位置都是以第1位为开始的!! * ...
最新文章
- linux离线安装服务 =====Ubuntu16.0.4 离线部署Openssh
- 【深度学习】深度学习经典数据集汇总
- .NET 深度指南:Colors
- flowable 账号密码加密
- GP学习整理(一)—Geoprocessing assembly and Geoprocessor managed assembly
- 在控制用' * '台画一个圆形图案
- PySpark-Recipes : RDD对象的基本操作
- Objective-c 开发环境
- 如何用vrml技术实现虚拟计算机组装实验,虚拟现实技术在计算机组装教学中的应用研究...
- 支付业务与技术架构学习总结(1)——完整的支付系统整体架构
- 见证蓝创十年庆典,与创业者共成长
- FDD与TDD的区别
- 12 HotKey问题
- ELK学习遇到的问题3--ERROR	pipeline/output.go:100	Failed to connect to backoff(elasticsearch..
- 生活,令人满意的生活,丰富的生活包括了起起落落,包括了痛苦和再次振作,包括了失败和再次奋
- 使用metalink批量下载sentinel数据
- java中date和时间戳相互转换以及获取前一个小时的时间
- excel手机版_微软的新办公利器,这才是手机办公该有的亚子!
- 为什么有的公司会规定所有接口都用 POST请求?
- html字体下划线下移,CSS下划线与文字间距距离设置(CSS文字下划线距离设置)