http://www.lydsy.com/JudgeOnline/problem.php?id=3670

题意:太水了= =

#include <bits/stdc++.h>
using namespace std;
const int N=1000005, mo=1000000007;
int n, p[N], pos[N], num[N], tot;
char s[N];
bool vis[N];
void dfs(int x) { if(p[x]) dfs(p[x]); vis[x]=1; pos[++tot]=x; }
void work(int x) {
tot=0;
dfs(x);
for(int i=1, j=0; i<=tot; ++i) {
while(pos[j+1]*2<=pos[i]) ++j;
num[pos[i]]=j;
}
}
void clr() { memset(p, 0, sizeof(int)*(n+1)); memset(vis, 0, sizeof(bool)*(n+1)); memset(num, 0, sizeof(int)*(n+1)); }
int main() {
int T; scanf("%d", &T);
while(T--) {
scanf("%s", s+1);
n=strlen(s+1);
int j=0;
for(int i=2; i<=n; ++i) {
while(j && s[j+1]!=s[i]) j=p[j];
if(s[j+1]==s[i]) ++j;
p[i]=j;
}
for(int i=n; i>=1; --i) if(!vis[i]) work(i);
long long ans=1;
for(int i=1; i<=n; ++i) (ans*=(num[i]+1))%=mo;
printf("%lld\n", ans);
clr();
}
return 0;
}

  

这种题放在noi= =无语= =

大概就是随便搞搞就行辣...

【BZOJ】3670: [Noi2014]动物园的更多相关文章

  1. 字符串(KMP):BZOJ 3670 [Noi2014]动物园

    3670: [Noi2014]动物园 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1521  Solved: 813[Submit][Status] ...

  2. BZOJ 3670: [Noi2014]动物园【KMP变形 】

    3670: [Noi2014]动物园 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 2738  Solved: 1475[Submit][Status ...

  3. bzoj 3670: [Noi2014]动物园

    Description 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己的真才实学向游客要吃的,园长决定开设算法班,让动物们学习 ...

  4. BZOJ 3670 NOI2014 动物园 KMP+dp

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3670 题意概述:令num[i]表示字符串由1~i的字符形成的前缀中不相重叠的相同前后缀的数 ...

  5. BZOJ 3670: [Noi2014]动物园 [KMP]

    求这玩意: 对于字符串S的前i个字符构成的子串,既是它的后缀同时又是它的前缀,并且该后缀与该前缀不重叠,将这种字符串的数量记作num[i] 对1,000,000,007取模的结果 n≤5,L≤1,00 ...

  6. 【BZOJ】3670: [Noi2014]动物园(KMP)

    题目 传送门:QWQ 分析 像求next一样求num. 第二次求next时加上不超过一半的条件. 时间复杂度: $ \huge O ( n ) $ 代码 // luogu-judger-enable- ...

  7. 3670: [Noi2014]动物园

    题目链接 题意:给n个字符串,求出每个字符串的num值,加1后相乘.num[i]表示1~i中,有多少没有重叠的公共前缀后缀. 分析: kmp中p数组表示最大的公共前缀后缀.设一cnt数组,表示1~i中 ...

  8. bzoj千题计划250:bzoj3670: [Noi2014]动物园

    http://www.lydsy.com/JudgeOnline/problem.php?id=3670 法一:KMP+st表 抽离nxt数组,构成一棵树 若nxt[i]=j,则i作为j的子节点 那么 ...

  9. NOI2014 动物园

    3670: [Noi2014]动物园 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 174  Solved: 92[Submit][Status] D ...

随机推荐

  1. 【hdu 1060】【求N^N最低位数字】

    Leftmost Digit Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

  2. 使用html5 canvas绘制图片

    注意:本文属于<html5 Canvas绘制图形入门详解>系列文章中的一部分.如果你是html5初学者,仅仅阅读本文,可能无法较深入的理解canvas,甚至无法顺畅地通读本文.请点击上述链 ...

  3. PHPCMS V9 WAP手机门户域名绑定

    如需要绑定域名为wap.domain.com,作下如操作: 一.把wap.domain.com域名绑定到你的这个网站主机上. 二.在网站后台模块>手机门户域名里面填写“http://wap.do ...

  4. C# NamePipe使用小结

    最近在一次项目中使用到了C#中命名管道,所以在此写下一篇小结备忘. 为什么要使用命名管道呢?为了实现两个程序之间的数据交换.假设下面一个场景.在同一台PC上,程序A与程序B需要进行数据通信,此时我们就 ...

  5. 微软改名部再次大显神威——ASP.NET 5改名ASP.NET Core 1.0

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:在计算机科学领域只有两件难事:缓存不可用和命名.--Phil Karlton 今天,S ...

  6. Ubuntu下安装Nginx

    转载自:http://www.cnblogs.com/skynet/p/4146083.html 1.Nginx安装 我使用的环境是64位 Ubuntu 14.04, Nginx是Nginx 1.10 ...

  7. .deb文件打包

    最近因项目需要,需要把文件夹打包为.deb格式的包,幸亏一位朋友帮忙指导了我一个晚上,才得以完成,这里再次对他表示感谢. 整理打包流程如下: 请先参考此博客内容,了解deb文件打包 如何制作Deb包和 ...

  8. Get open Popups

    public IEnumerable<Popup> GetOpenPopups() { return PresentationSource.CurrentSources.OfType< ...

  9. 对于Eclipse的正确用法

    有时候我们刚刚修改了工程里的文件 但是启动的时候它硬是说你有东西没有声明 而那个东西又明明在那里.. 这时候我们可以认为实际与它调用的工程关系文件(我假想的) 不同步.. 我们可以通过clean功能来 ...

  10. 查询sqlserver 正在执行的sql语句的详细信息

    SELECT [Spid] = session_Id, ecid, [Database] = DB_NAME(sp.dbid), [User] = nt_username, [Status] = er ...