博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 1686 Oulipo
阅读量:5367 次
发布时间:2019-06-15

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

https://vjudge.net/problem/HDU-1686

题意:

求模板串在文本串中出现的次数。

思路:

果果的kmp模板题啊,所以直接上模板啦。用的是lrj大大的白书的模板。

代码:

1 #include 
2 #include
3 4 char text[1000005]; 5 char w[10005]; 6 int fl[1000005]; 7 8 void getfail(char *P,int *f) 9 {10 int m = strlen(P);11 f[0] = 0;f[1] = 0;12 13 for (int i = 1;i < m;i++)14 {15 int j = f[i];16 17 while (j && P[i] != P[j]) j = f[j];18 19 f[i+1] = P[i] == P[j] ? j+1 : 0;20 }21 }22 23 int find(char *T,char *P,int *f)24 {25 int ans = 0;26 int n = strlen(T),m = strlen(P);27 28 getfail(P,f);29 30 int j = 0;31 32 for (int i = 0;i < n;i++)33 {34 while (j && P[j] != T[i]) j = f[j];35 if (P[j] == T[i]) j++;36 if (j == m) ans++;37 }38 39 return ans;40 }41 42 int main()43 {44 int t;45 46 scanf("%d",&t);47 48 while (t--)49 {50 memset(fl,0,sizeof(fl));51 52 scanf("%s",w);53 scanf("%s",text);54 55 int ans = find(text,w,fl);56 57 printf("%d\n",ans);58 }59 60 return 0;61 }

 

 

转载于:https://www.cnblogs.com/kickit/p/7247641.html

你可能感兴趣的文章
微软职位内部推荐-Principal Dev Manager for Windows Phone Apps
查看>>
jquery改变元素属性值(转)
查看>>
模板题 Truck History poj1789
查看>>
部署zookeeper实践
查看>>
git回退版本
查看>>
mysql 1093错误
查看>>
io流2
查看>>
测试作业
查看>>
SQLite与SQL差异
查看>>
什么是路由器?
查看>>
SQL Server 性能优化之——系统化方法提高性能
查看>>
《额尔古纳河右岸》读书笔记
查看>>
使用RMAN Active duplicate创建异地auxiliary Database
查看>>
self.location.href的具体用法(转)
查看>>
软件工程第三次作业
查看>>
Introducing my blog
查看>>
Appache 无法启动,检查 wamp “appache_error.log”文件,发现错误 (OS 10022)提供了一个无效的参数...
查看>>
JQuery UI 插件
查看>>
全能无线渗透测试工具,一个LAZY就搞定了
查看>>
epoll()无论涉及wait队列分析
查看>>