题目描述

每次写kmp都要调一万年

这题主要两个数组next[]next[]和num[]num[]
num[i]num[i]表示以ii结尾的前缀所能匹配的数量(可重叠的)

代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<vector>
using namespace std;
const int L=1000010, mod=1000000007;
int n, next[L], num[L], ans;
char s[L];int main()
{cin>>n;while(n--) {ans=1;char c=getchar(); while(c < 'a' || c > 'z') c=getchar();int cnt=0; while(c >= 'a' && c <= 'z') s[++cnt]=c, c=getchar();memset(next, 0, sizeof(next)); memset(num, 0, sizeof(num));num[1]=1;for(int i=2, j=0; i<= cnt; i++){while(j && s[i] != s[j+1]) j=next[j];if(s[i] == s[j+1]) j++; next[i]=j; num[i]=num[j]+1;//printf("%d %d\n", next[i], num[i]);} for(int i=2, j=0; i <= cnt; i++){while(j && s[i] != s[j+1]) j=next[j]; if(s[i] == s[j+1]) ++j;while(j*2 > i) j=next[j]; ans=((long long)ans*(num[j]+1))%mod;}printf("%d\n", ans);}return 0;
}

转载于:https://www.cnblogs.com/zerolt/p/9260879.html

[NOI2014]动物园 【kmp】相关推荐

  1. P2375 [NOI2014] 动物园 kmp fail指针/倍增

    传送门 文章目录 题意: 思路: 题意: 思路: 由kmpkmpkmp中失配数组nenene的含义我们知道,ne[i],ne[ne[i]],...ne[i],ne[ne[i]],...ne[i],ne ...

  2. bzoj 3670: [Noi2014]动物园 kmp与扩展kmp

    bzoj 3670: [Noi2014]动物园容 Description 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己的真才 ...

  3. BZOJ3670 [Noi2014]动物园 【KMP计数】

    3670: [Noi2014]动物园 Time Limit: 10 Sec  Memory Limit: 512 MB Submit: 3143  Solved: 1690 [Submit][Stat ...

  4. bzoj 3670 [NOI2014]动物园

    3670: [Noi2014]动物园 Time Limit: 10 Sec  Memory Limit: 512 MB Submit: 2032  Solved: 1077 [Submit][Stat ...

  5. bzoj3670 [Noi2014]动物园

    [Noi2014]动物园 Time Limit: 10 Sec Memory Limit: 512 MB Description 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游 ...

  6. bzoj-3670 [Noi2014]动物园

    3670: [Noi2014]动物园 题目链接 时间限制: 10 Sec 内存限制: 512 MB 提交: 3558 解决: 1925 [提交][][] 题目描述 近日,园长发现动物园中好吃懒做的动物 ...

  7. [BZOJ]3670 [NOI]2014 动物园 KMP好题

    3670: [Noi2014]动物园 Time Limit: 10 Sec   Memory Limit: 512 MB Submit: 3045   Solved: 1646 [ Submit][ ...

  8. 洛谷P2375 [NOI2014] 动物园 题解

    洛谷P2375 [NOI2014] 动物园 题解 题目链接:P2375 [NOI2014] 动物园 题意: 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物 ...

  9. 【NOI2014】动物园 kmp性质

    对于字符串\(S\)的前\(i\)个字符构成的子串,既是它的后缀又是它的前缀的字符串中,它本身除外,最长的长度记作 \(next[i]\) 真是精炼的定义 char s[maxn];int n; in ...

最新文章

  1. python添加数组元素_Python列表附录–如何向数组添加元素,并附带示例说明
  2. 因果图方法中的基本符号
  3. 从技术上还原入侵雅虎服务器是怎么一回事
  4. 在Python中使用正则表达式去掉字符串里的html标签
  5. What's going on in background?
  6. 【十二省联考2019】希望【点边容斥】【换根dp】【长链剖分】【线性数据结构】【回退数据结构】【离线逆元】
  7. go和python性能对比_Go和Python Web服务器性能对比
  8. 字节跳动的首款获批游戏曝光 原来是这个
  9. PostgreSQL\GPDB 多维数据透视典型案例分享
  10. 解决Vue循环中子组件不实时更新的问题
  11. Java学习笔记-12.传递和返回对象
  12. OpenV2X开源社区亮相全球边缘计算大会
  13. LiveQing私有云流媒体-云端录像时间轴视频及列表视图
  14. iOS10 更新后问题,获取相册,录音时候闪退问题
  15. 2020年国内外值得关注的15家PaaS平台与SaaS厂商!
  16. 欢迎大家来到第二期【产品家·实战营】
  17. jenkins部署的时候WARNING: IPv4 forwarding is disabled. Networking will not work.
  18. JSP开发模型与MVC设计模型
  19. [OpenVas/Gvm]Failed to find config ‘085569ce-73ed-11df-83c3-002264764cea‘
  20. 名悦集团:冬季汽车保养怎么做才到位

热门文章

  1. python将照片转文字_Python将图片转化成文字
  2. 判断一个窗口是否有焦点_判断一个项目是否值得加盟的基本方法
  3. 安徽信息技术初中会考上机考试模拟_中学信息技术上机操作考试技巧
  4. java 静态方法中为什么不可以使用关键字this _super_Java static方法里为什么不能使用this关键字,和Super...
  5. PTA团体程序设计天梯赛篇(五)---- 难题篇一(30分题目)
  6. 不建议在Docker中部署数据库
  7. Mysql在Windows上离线安装与配置
  8. VSCode来绘制流程图真是得心应手
  9. Electron中提示:Refused to execute inline event handler because it violates
  10. Winform中实现自定义屏保效果(附代码下载)