【BZOJ】3670: [Noi2014]动物园(KMP)
题目
传送门:QWQ
分析
像求next一样求num。
第二次求next时加上不超过一半的条件。
时间复杂度: $ \huge O ( n ) $
代码
// luogu-judger-enable-o2
#include <bits/stdc++.h>
using namespace std;
const int MOD=;
int n, nxt[], num[];
char s1[];
long long ans; void kmp()
{
ans=;
nxt[]=-; num[]=;
for(int i=,j;i<=n;i++)
{
for(j=nxt[i-]; j>= && s1[i]!=s1[j+]; j=nxt[j]);
j++; nxt[i]=j;
num[i]=num[j]+;
}
for(int i=,j=-;i<=n;i++)
{
for(; j>= && s1[i]!=s1[j+]; j=nxt[j]);
j++; //nxt[i]=j;
for(;(j<<)>i;j=nxt[j]);
ans*=num[j]+;ans%=MOD;
}
} int main()
{
int T;
scanf("%d",&T);
while(T--)
{
scanf("%s",s1+);
n=strlen(s1+)+;
kmp();
printf("%lld\n",ans);
}
return ;
}
【洛谷】P3919 【模板】可持久化数组(主席树)
【BZOJ】3670: [Noi2014]动物园(KMP)的更多相关文章
- BZOJ 3670 NOI2014 动物园 KMP+dp
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3670 题意概述:令num[i]表示字符串由1~i的字符形成的前缀中不相重叠的相同前后缀的数 ...
- BZOJ 3670: [Noi2014]动物园 [KMP]
求这玩意: 对于字符串S的前i个字符构成的子串,既是它的后缀同时又是它的前缀,并且该后缀与该前缀不重叠,将这种字符串的数量记作num[i] 对1,000,000,007取模的结果 n≤5,L≤1,00 ...
- 字符串(KMP):BZOJ 3670 [Noi2014]动物园
3670: [Noi2014]动物园 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1521 Solved: 813[Submit][Status] ...
- BZOJ 3670: [Noi2014]动物园【KMP变形 】
3670: [Noi2014]动物园 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 2738 Solved: 1475[Submit][Status ...
- bzoj 3670: [Noi2014]动物园
Description 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己的真才实学向游客要吃的,园长决定开设算法班,让动物们学习 ...
- bzoj3670 [Noi2014]动物园——KMP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3670 第一次写KMP算法...又T又WA了半天... 1. num 数组表示包括其本身的前缀 ...
- 【BZOJ】3670: [Noi2014]动物园
http://www.lydsy.com/JudgeOnline/problem.php?id=3670 题意:太水了= = #include <bits/stdc++.h> using ...
- BZOJ3670:[NOI2014]动物园(KMP)
Description 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己的真才实学向游客要吃的,园长决定开设算法班,让动物们学习 ...
- [NOI2014]动物园(kmp)
题目 https://www.luogu.org/problemnew/show/P2375 做法 查找多少个前缀与后缀配对,其实就是\(fail\)树的深度 而不可重叠,其实\(i\)不可用的,\( ...
随机推荐
- 虚拟机中centos7与物理主机通讯
本地物理机 WIN命令行:ipconfig 查看网络配置 在物理机的网络配置--> 配置VMnet8 打开VMware 编辑虚拟机设置,选择自定义NAT模式(VMnat8) 编辑->虚拟 ...
- caffe 细节
batch :http://www.zhihu.com/question/32673260 caffe blog: http://blog.csdn.net/abcjennifer/article/d ...
- Mysql Innodb 引擎优化 参数(innodb_buffer_pool_size)
在mysql的学习过程中,要是不把一些基本概率弄的很清楚,难免显得过于不专业. 作用: 这个参数主要作用是缓存innodb表的索引,数据,插入数据时的缓冲 默认值:128M 专用mysql服务器设置的 ...
- 07----popo up 弹窗
弹窗: 绑定点击弹窗事件,js代码 弹出框的url设置 from django.forms.models import ModelChoiceField 进入ModelChoiceField 可看到 ...
- vue中使用less
我们需要下载less对应的依赖包 第一步: 安装less依赖,npm install less less-loader --save 第二步: 修改webpack.config.js文件,配置load ...
- 封装 一下 php sql 的存储语句
function get_insert_sql($obj){ $str1 =""; $str2 =""; foreach($obj as $key => ...
- 使用python处理selenium中的xpath定位元素的模糊匹配问题
# 用contains,寻找页面中style属性值包含有sp.gif这个关键字的所有div元素,其中@后面可以跟该元素任意的属性名. self.driver.find_element_by_xpath ...
- springboot项目启动之后初始化自定义配置类
前言 今天在写项目的时候,需要再springboot项目启动之后,加载我自定义的配置类的一些方法,百度了之后特此记录下. 正文 方法有两种: 1. 创建自定义类实现 CommandLineRunner ...
- Java8新特性——StreamAPI(一)
1. 流的基本概念 1.1 什么是流? 流是Java8引入的全新概念,它用来处理集合中的数据,暂且可以把它理解为一种高级集合. 众所周知,集合操作非常麻烦,若要对集合进行筛选.投影,需要写大量的代码, ...
- SQL夯实基础(九)MySQL联接查询算法
书接上文<SQL夯实基础(八):联接运算符算法归类>. 这里先解释下EXPLAIN 结果中,第一行出现的表就是驱动表(Important!). 对驱动表可以直接排序,对非驱动表(的字段排序 ...