KMP - NOI2014 动物园
单题分析:NOI2014 动物园。
题目分析:很明显题目已明确指出这是有关KMP的题,思考KMP。本题与普通KMP不同之处在于它求的是不相交最长相同前缀后缀。
如何处理不相交:
1.暴力
2.注意一件事:两个相同的串,前缀与后缀相同,即同一个串,前缀的前缀等于后缀的后缀(这里是前缀与后缀相等的前缀与后缀),即当KMP[i]超过串的一半长度时,对此时的前缀与后缀分别求其的前缀与后缀(同上),直到其长度小于等于串的一半长度。
3.关键:前缀与后缀相同。
#include <bits/stdc++.h>
using namespace std;
long long n;
char c[];
long long kmp[],ans[];
int main()
{
scanf("%lld",&n);
while(n--)
{
memset(ans,,sizeof(ans));
memset(kmp,,sizeof(kmp));
scanf("%s",c + );
long long j = ;
ans[] = ;
long long lena = strlen(c + );
for(long long i = ;i <= lena;i++)
{
while(j && c[i] != c[j + ])j = kmp[j];
if(c[i] == c[j + ])j++;
ans[i] = ans[j] + ;
kmp[i] = j;
}
j = ;
long long out = ;
for(long long i = ;i <= lena;i++)
{
while(j && c[i] != c[j + ])j = kmp[j];
if(c[i] == c[j + ])j++;
while(j > i / )j = kmp[j];
out = (out * (ans[j] + )) % ;
}
printf("%lld\n",out);
}
return ;
}
KMP - NOI2014 动物园的更多相关文章
- 字符串(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 ...
- BZOJ3670 [Noi2014]动物园 【KMP计数】
3670: [Noi2014]动物园 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 3143 Solved: 1690 [Submit][Stat ...
- [BZOJ3670][UOJ#5][NOI2014]动物园
[BZOJ3670][UOJ#5][NOI2014]动物园 试题描述 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己的真才实学 ...
- NOI2014 动物园
3670: [Noi2014]动物园 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 174 Solved: 92[Submit][Status] D ...
- BZOJ_3670_[Noi2014]动物园_KMP
BZOJ_3670_[Noi2014]动物园_KMP Description 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己的 ...
- bzoj千题计划250:bzoj3670: [Noi2014]动物园
http://www.lydsy.com/JudgeOnline/problem.php?id=3670 法一:KMP+st表 抽离nxt数组,构成一棵树 若nxt[i]=j,则i作为j的子节点 那么 ...
- [洛谷P2375] [NOI2014]动物园
洛谷题目链接:[NOI2014]动物园 题目描述 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己的真才实学向游客要吃的,园长决 ...
- 【bzoj3670】[Noi2014]动物园
3670: [Noi2014]动物园 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 2080 Solved: 1107[Submit][Status ...
随机推荐
- Python高性能HTTP客户端库requests的使用
Python中有许多HTTP客户端.使用最广泛且最容易的是requests. 持续连接 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很 ...
- IPv4地址段、地址掩码、可用地址等常用方法
package com.xxx.iptools; import java.util.ArrayList; import java.util.HashMap; import java.util.List ...
- 13、Visitor 访问者模式 访问数据结构并处理数据 行为型设计模式
1.模式的定义与特点 访问者(Visitor)模式的定义:将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元 ...
- 强开企业付款到零钱与现金红包,无需等待90/30天,2-12H即可强开通!
一.微信官方给出的,企业付款到零钱|现金红包开通的说明 针对入账方式为即时入账至商户号,结算周期为T+1的商户,需满足三个条件:1)入驻满90天,2)连续正常交易30天,3)保持正常健康交易.其余结算 ...
- VMware Workstation pro无法在Windows上运行,检查可在Windows上运行的此应用的更新版本
我的Windows版本是win10-1903,VMware版本比较老旧是VMware-10:国庆节后微软推送了一个新的更新补丁,更新之后发现VMware无法打开(未更新前正常). 更新补丁详情如下: ...
- 2020-04-05:谈一下spring事务传播
- vue-loader处理vue文件
loader:"vue-loader" ,引导vue文件被vue-loader/lib/index.js处理 第一步:解析vue文件 const utils = require(' ...
- 浅析XML和JSON的区别
前言 今天做接口对接时,发现对方竟然是通过XML进行数据传输,当时冒出的第一个想法就是:WTF,这都什么年代了,还在用XML,是来搞笑的吧,JSON它不香吗? 想法归想法,但对接还是要完成的是吧?然后 ...
- 正规式转化为DFA
https://www.bilibili.com/video/BV1dj411f7AR?p=50 例题:
- Jmeter 常用函数(27)- 详解 __env
如果你想查看更多 Jmeter 常用函数可以在这篇文章找找哦 https://www.cnblogs.com/poloyy/p/13291704.html 作用 获取环境变量的值 语法格式 ${__e ...