OJ3311数据结构实验之串三:KMP应用
来源:互联网 发布:淘宝网婴幼儿童车 编辑:程序博客网 时间:2024/06/11 19:35
数据结构实验之串三:KMP应用
Time Limit: 1000MS Memory limit: 65536K
题目描述
有n个小朋友,每个小朋友手里有一些糖块,现在这些小朋友排成一排,编号是由1到n。现在给出m个数,能不能唯一的确定一对值l和r(l <= r),使得这m个数刚好是第l个小朋友到第r个小朋友手里的糖块数?
输入
首先输入一个整数n,代表有n个小朋友。(0
输出
如果能唯一的确定一对l,r的值,那么输出这两个值,否则输出-1
示例输入
51 2 3 4 532 3 4
示例输出
2 4
提示
来源
windream
示例程序
注意题目中的是否存在唯一确定的一对
#include<stdio.h>#include<stdlib.h>#include<string.h>#define max 1000000int next[max];int a[max],b[max];typedef struct{ int *ch; int len;} String;void init(String *tr){ tr->ch=(int *)malloc(max*sizeof(int)); if(!tr->ch) return ; tr->len=0;}void creat(String *str,int a[],int n){ int i; for(i=0; i<n; i++) str->ch[i+1]=a[i]; str->len=i;}void get_nextval(String *str){ int i=1,j=0; next[1]=0; while(i<str->len) { if(j==0||str->ch[i]==str->ch[j]) { ++i; ++j; next[i]=j; } else j=next[j]; }}int KMP(String *str1,String *str2){ int i=1,j=1,f=0,t; get_nextval(str2); while(i<=str1->len&&j<=str2->len) { if(j==0||str1->ch[i]==str2->ch[j]) { ++i; ++j; } else j=next[j]; if(j>str2->len) { t=i; j=1; f++; } } if(f==1) return t-str2->len; else return -1;}int main(){ String str1,str2; int n,i,m,x; init(&str1); init(&str2); scanf("%d",&n); for(i=0; i<n; i++) { scanf("%d",&a[i]); } scanf("%d",&m); for(i=0; i<m; i++) { scanf("%d",&b[i]); } creat(&str1,a,n); creat(&str2,b,m); int f=KMP(&str1,&str2); if(f!=-1) { printf("%d %d\n",f,f+m-1); } else printf("%d\n",f);}
0 0
- OJ3311数据结构实验之串三:KMP应用
- sdut oj3311 数据结构实验之串三:KMP应用
- 数据结构实验之串三:KMP应用
- 数据结构实验之串三:KMP应用
- 数据结构实验之串三:KMP应用
- 数据结构实验之串三:KMP应用
- 数据结构实验之串三:KMP应用
- 数据结构实验之串三:KMP应用
- 数据结构实验之串三:KMP应用
- 数据结构实验之串三:KMP应用
- 数据结构实验之串三:KMP应用
- 数据结构实验之串三:KMP应用
- 数据结构实验之串三:KMP应用
- 数据结构实验之串三:KMP应用
- 数据结构实验之串三:KMP应用
- 数据结构实验之串三:KMP应用
- 数据结构实验之串三:KMP应用
- 数据结构实验之串三:KMP应用
- C语言:用异或^实现数据加密
- kuangbin——线段树专题 E - Just a Hook
- SkipList跳表的实现
- 弹幕效果实现
- HDU 5793 A Boring Question(快速幂+求逆元)
- OJ3311数据结构实验之串三:KMP应用
- 面试中关于key/value的问题及map的理解
- leetcode_c++: Regular Expression Matching(010)
- 从Windows到Linux(二)
- js函数
- node-webkit js 复制粘贴
- C++之stl::string写时拷贝导致的问题
- kuangbin——线段树专题 F - Balanced Lineup
- 安卓百分比布局之RelativeLayout