亲串 (hdu 2203 KMP)
亲串
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 8049 Accepted Submission(s): 3719
亲和串的定义是这种:给定两个字符串s1和s2,假设能通过s1循环移位,使s2包括在s1中,那么我们就说s2 是s1的亲和串。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <string>
#include <map>
#include <stack>
#include <vector>
#include <set>
#include <queue>
#pragma comment (linker,"/STACK:102400000,102400000")
#define maxn 100010
#define MAXN 2005
#define mod 1000000009
#define INF 0x3f3f3f3f
#define pi acos(-1.0)
#define eps 1e-6
typedef long long ll;
using namespace std;char str[2*maxn],pstr[2*maxn];
int nextval[2*maxn];void get_nextval()
{int plen=strlen(pstr);int i=0,j=-1;nextval[0]=-1;while (i<plen){if (j==-1||pstr[i]==pstr[j]){i++;j++;if (pstr[i]!=pstr[j])nextval[i]=j;elsenextval[i]=nextval[j];}elsej=nextval[j];}
}bool KMP()
{int i=0,j=0;int len=strlen(str);int plen=strlen(pstr);while (i<len&&j<plen){if (j==-1||str[i]==pstr[j]){i++;j++;}elsej=nextval[j];}if (j==plen)return true;return false;
}int main()
{while (~scanf("%s%s",str,pstr)){int len=strlen(str);for (int i=0;i<len;i++)str[len+i]=str[i];str[len+i]='\0';get_nextval();if (KMP())printf("yes\n");elseprintf("no\n");}return 0;
}
/*
AABCD
CDAA
ASD
ASDF
*/
版权声明:本文博客原创文章。博客,未经同意,不得转载。
转载于:https://www.cnblogs.com/gcczhongduan/p/4710998.html
亲串 (hdu 2203 KMP)相关推荐
- KMP算法 hdu 1711 hdu 2203
mark一下,重新温习了 KMP KMP复杂度O(n+m) 这里有一个解释的超级的好的博客,大家可以去看一下:http://blog.csdn.net/v_july_v/article/details ...
- 【HDU - 2203】 亲和串 (思维题,可选KMP)
题干: Problem Description 人随着岁数的增长是越大越聪明还是越大越笨,这是一个值得全世界科学家思考的问题,同样的问题Eddy也一直在思考,因为他在很小的时候就知道亲和串如何判断了, ...
- hdu 2594 kmp
这个题和kmp算法的共同点,也就是可以用kmp解的原因,在于当前缀所在串(kmp中的模式串)字符pj≠后缀所在串(kmp中文本串)字符tj时,应使前缀串(kmp中模式串)尽量往右移动最大位移,而暴力算 ...
- HDU 2087 (KMP不可重叠的匹配) 花布条
题意: 用两个字符串分别表示布条和图案,问能从该布条上剪出多少这样的图案. 分析: 毫无疑问这也是用KMP匹配,关键是一次匹配完成后,模式串应该向后滑动多少. 和上一题 HDU 1686 不同,两个图 ...
- 数据结构实验之串三:KMP应用
Description 有n个小朋友,每个小朋友手里有一些糖块,现在这些小朋友排成一排,编号是由1到n.现在给出m个数,能不能唯一的确定一对值l和r(l <= r),使得这m个数刚好是第l个小朋 ...
- hdu 2594(kmp)
1 /* 2 * KMP 3 * 思路:把两个串连接,然后求next[]数组值 4 * 注意:当两个串都是重复串且重复子串一样是,要特殊处理 5 */ 6 7 #include <cstdio& ...
- java中KMP模式,Java数据结构-串及其应用-KMP模式匹配算法
串(string)是由零个或多个宇符组成的有限序列,又名叫字符串. 定义的解释: ??串中的字符数目n称为串的长度,定义中谈到"有限"是指长度n是一个有限的数值. ??零个字符的串 ...
- HDU 2203 水过
亲和串 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- HDU 1686 [KMP]
题目链接 思路:本题需要求出模式串在主串里的出现次数,利用KMP求出即可 /* --------------KMP算法-------------- 用于在字符串S中匹配字符串T本题利用KMP算法进行匹 ...
- HDU 1686 [KMP] --by二汪
题目链接 /* --------------KMP算法-------------- 用于在字符串S中匹配字符串T注: 此模板的字符串都是从第0位开始存的 但返回和输出的位置都是以第1位为开始的!! * ...
最新文章
- css 子元素设置float,父元素高度塌陷
- 超经典的存储过程分页 ;-) 引自CSDN网友所作
- 设计模式——建造者模式
- SAP ABAP bcset激活时,关联的数据库表条目是如何插入的
- 提里奥·弗丁(魔兽世界里的NPC)
- gradle跟pom_Gradle多项目构建–父pom式结构
- python访问网页速度_python实现用于测试网站访问速率的方法
- 使用ModelArts自动学习完成猫狗声音分类
- kafka linux根目录满,Linux磁盘空间满的诡异问题解决方案
- Jade模板引擎教程
- ELAS_ROS算法 在 KITTI数据集 实践
- OpenJudge NOI题库 入门 116题 (三)
- 计算机系统关机后自动重启,小白教你电脑关机后自动重启是什么原因
- 莫名其妙把电脑机箱左边耳机孔弄出来声音
- networkx —— 基本操作及画图
- 微分,变分,差分的确切定义与区别
- 最好PDF软件汇总070623
- FineBI连接本地Mysql数据库
- ROS——一文读懂:param参数
- 2022华为开发者大赛北区决赛在1024程序员节北京峰会成功举行
热门文章
- python2 输出\n 不要换行
- Swagger2 忽略某些参数使其不出现在接口文档中
- JDBC学习(三、DDL、DML和DQL)
- 八、面向对象三大特征(二)—— 继承
- 两台服务器centos7.x 直接文件共享,文件挂载 nfs
- LayaAir 快捷键设置与资源命名规则
- Git 命令 checkout、reset、revert、reflog 、merge 使用介绍
- 数据库索引介绍及使用
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_04 IO字节流_6_字节输出流写多个字节的方法...
- 【实战】Axis2后台Getshell