题面

其实好像并不难,因为猫老师(应该是猫老师吧,还是LX大佬?)有一句话让我印象深刻:“包的(border)的包的还是包的”=。=

统计个数不就是统计长度么,然后根据上面那句话,当$nxt$长度大于$\frac{len}{2}$时我们就不断跳$nxt$直到满足条件即可

 #include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=1e6+;
const long long mod=1e9+;
int nxt[N],num[N];
long long ans;
int T,len,p;
char rd[N];
void gtmd()
{
memset(nxt,,sizeof nxt);
memset(num,,sizeof num);
len=strlen(rd),p=,num[]=;
}
int main ()
{
scanf("%d",&T);
while(T--)
{
scanf("%s",rd),gtmd();
for(int i=;i<len;i++)
{
while(p&&rd[i]!=rd[p]) p=nxt[p];
nxt[i+]=(rd[i]==rd[p])?++p:,num[i+]=num[p]+;
}
p=,ans=;
for(int i=;i<len;i++)
{
while(p&&rd[i]!=rd[p]) p=nxt[p];
p+=(rd[i]==rd[p]);
while(p&&(p<<)>i+) p=nxt[p];
ans*=(num[p]+),ans%=mod;
}
printf("%lld\n",ans);
}
return ;
}

解题:NOI 2014 动物园的更多相关文章

  1. [luogu P2375] [NOI 2014] 动物园

    [luogu P2375] [NOI 2014] 动物园 题目描述 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己的真才实学向 ...

  2. [NOI 2014]动物园

    Description 题库链接 \(t\) 组询问.每组询问给出一个字符串 \(S\) .要求求出一个 \(num\) 数组一一对于字符串 \(S\) 的前 \(i\) 个字符构成的子串,既是它的后 ...

  3. 【BZOj 3670】【UOJ #5】【NOI 2014】动物园

    http://www.lydsy.com/JudgeOnline/problem.php?id=3670 http://uoj.ac/problem/5 可以建出"KMP自动机"然 ...

  4. 解题:NOI 2014 随机数生成器

    题面 为什么NOI2014有模拟题=.=??? 按题意把序列生成出来之后,对每一行维护一个能取到的最左侧和能取到的最右侧.从小到大$O(n^2)$枚举数字看看能否填入,能填入则暴力$O(n)$更新信息 ...

  5. 解题:NOI 2014 购票

    题面 观察一下部分分,我们发现链上的部分分是这样一个DP: $dp[i]=min(dp[i],dp[j]+dis(i,j)*p[i]+q[i])(dis(i,j)<=lim[i]\&\& ...

  6. 【NOI 2014】 动物园

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3670 [算法] KMP [代码] #include<bits/stdc++.h ...

  7. [NOI 2014]魔法森林

    Description 为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士.魔法森林可以被看成一个包含个N节点M条边的无向图,节点标号为1..N,边标号为1..M.初始时小E同学在号节 ...

  8. [NOI 2014]做题记录

    [NOI2014]起床困难综合症 按位贪心 #include <algorithm> #include <iostream> #include <cstring> ...

  9. NOI 2014 感想

    NOI2014结束了,我卡线登上了领奖台... 这是我第一次NOI,我觉得我收获了很多东西: 1.考前心态不重要,重要的是实力 真正考试的时候是顾不得想其他事情的 2.测试数据是人出的!不是随机的!不 ...

随机推荐

  1. java抽象类与接口区别

    java抽象类与接口区别: abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力. abstr ...

  2. ceilometer 源码分析(polling)(O版)

    一.简单介绍ceilometer 这里长话短说, ceilometer是用来采集openstack下面各种资源的在某一时刻的资源值,比如云硬盘的大小等.下面是官网现在的架构图 这里除了ceilomet ...

  3. 什么是mvc模式

    MVC是一个架构,或者说是一个设计模式,它就是强制性使应用程序的输入,处理和输出分开.将一个应用程序分为三个部分:Model,View,Controller. 原理图: 分析: Model 模型(完成 ...

  4. route命令详情

    基础命令学习目录首页 原文链接:https://www.cnblogs.com/lpfuture/p/5857738.html 考试题一:linux下如何添加路由(百度面试题) 以上是原题,老男孩老师 ...

  5. redis高级应用(集群搭建、集群分区原理、集群操作)

    文章主目录 Redis集群简介 Redis集群搭建 Redis集群分区原理 集群操作 参考文档 本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 ...

  6. YQCB冲刺周第四天

    上图站立会议 任务看板: 今天的任务:做登录身份的验证,区别普通用户和超级管理员 遇到的困难:中文乱码问题

  7. java 1.7 1.8新特性

    在JDK1.7的新特性方面主要有下面几方面的增强:1.jdk7语法上1.1二进制变量的表示,支持将整数类型用二进制来表示,用0b开头.1.2 Switch语句支持string类型1.3 Try-wit ...

  8. 使用Git进行代码管理心得------------个人练习

    一.在github.com上的操作   今天我们实践课程学习了用Git进行代码版本,使用github进行代码托管,我和队友在官网上创建了自己的Organization,将Auto CS fork到了小 ...

  9. 在新的电脑上部署 Hexo,保留原有博客的方法

    用U盘从旧的电脑拷贝整个blog文件夹. 在新的电脑上装好git并配置好用户名和密钥. 安装 node.js 安装 hexo:npm install hexo-cli -g 用U盘把blog文件夹拷贝 ...

  10. Ubuntu下tensorboard的使用

    1. 找到运行程序的事件输出路径   找到路径并进入,例如我的是在路径/home/ly/codes下: 2. 打开tensorboard服务器   在终端输入(--logdir=自己所存的路径): t ...