博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
KMP模板(HDU1711)
阅读量:4708 次
发布时间:2019-06-10

本文共 1186 字,大约阅读时间需要 3 分钟。

#include
#include
#include
#include
#include
#include
#include
#include
#include
#define MAXN 1010100#define LL long long#define ll __int64#define INF 0x7fffffff#define cs(s) freopen(s,"r",stdin)#define mem(x) memset(x,0,sizeof(x))#define PI acos(-1)#define eps 1e-10using namespace std;int gcd(int a,int b){ return b?gcd(b,a%b):a;}int lcm(int a,int b){ return a/gcd(a,b)*b;}LL powmod(LL a,LL b,LL MOD){ LL ans=1;while(b){ if(b%2)ans=ans*a%MOD;a=a*a%MOD;b/=2;}return ans;}//headint t,m,n;int pattern[1101001],text[1001001];vector
find_substring(int pattern[],int text[]){ vector
nex (n+1,0); for(int i=1;i
0) { j=nex[j]; if(pattern[j]==pattern[i]){ nex[i+1]=j+1;break;} } } vector
pos; for(int i=0,j=0;i
0){ j=nex[j]; if(text[i]==pattern[j]){ j++; break; } } } if(j==n)pos.push_back(i-n+1); } return pos;}int main(){ ios::sync_with_stdio(false); for(cin>>t;t;t--){ cin>>m>>n; for(int i=0;i
>text[i]; for(int i=0;i
>pattern[i]; vector
ans=find_substring(pattern,text); if(!ans.size())cout<<-1<<'\n'; else cout<
<<'\n'; } return 0;}

转载于:https://www.cnblogs.com/pubgoso/p/10759733.html

你可能感兴趣的文章
Linux磁盘及文件系统(三)Linux文件系统
查看>>
SDWebImage源码阅读(二)NSData+ImageContentType
查看>>
别在最好的年纪辜负最好的自己
查看>>
微软品牌形象广告 不是一般的优秀
查看>>
【Object.prototype.toString.call()】---判断某个对象属于哪种内置类型------【巷子】...
查看>>
转载:结构体的字节对齐
查看>>
用github来展示你的前端页面吧
查看>>
内存池
查看>>
SQLServer到底支持多少连接数的并发?
查看>>
深入分析java中文乱码问题
查看>>
Nginx(二)
查看>>
CF #329 D
查看>>
Android中pendingIntent的深入理解
查看>>
地图之CLLocationManager的使用 定位功能使用
查看>>
AsyncTask 之怎样使用
查看>>
NancyFX 第九章 Responses(响应对象)
查看>>
C#WinForm 窗体回车替换Tab
查看>>
深入理解java虚拟机(5)---字节码执行引擎
查看>>
jquery之别踩白块游戏的实现
查看>>
从今天开始写博客
查看>>