【BZOJ3670】【UOJ5】【NOI2014】动物园
【题目链接】
- BZOJ
- UOJ
【思路要点】
- 做两次KMP,第一次求出Next数组,第二次保证匹配位数不超过当前串的一半(否则视为失配),求出Num数组。
- 时间复杂度\(O(NL)\)。
【代码】
#include<bits/stdc++.h> using namespace std; #define MAXN 1000005 #define P 1000000007 template <typename T> void read(T &x) {x = 0; int f = 1;char c = getchar();for (; !isdigit(c); c = getchar()) if (c == '-') f = -f;for (; isdigit(c); c = getchar()) x = x * 10 + c - '0';x *= f; } char s[MAXN]; int len[MAXN], num[MAXN], nxt[MAXN]; int main() {int T; read(T);while (T--) {scanf("\n%s", s + 1);int n = strlen(s + 1);nxt[1] = 0; num[1] = 1;for (int i = 2; i <= n; i++) {int j = nxt[i - 1];while (j && s[i] != s[j + 1]) j = nxt[j];if (s[i] == s[j + 1]) j++;nxt[i] = j; num[i] = num[j] + 1;}long long ans = 1;int pos = 0;for (int i = 2; i <= n; i++) {while (pos && s[i] != s[pos + 1]) pos = nxt[pos];if (s[i] == s[pos + 1]) pos++;if (pos > i / 2) pos = nxt[pos];ans = ans * (num[pos] + 1) % P;}printf("%lld\n", ans);}return 0; }
【BZOJ3670】【UOJ5】【NOI2014】动物园相关推荐
- BZOJ3670 [Noi2014]动物园 【KMP计数】
3670: [Noi2014]动物园 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 3143 Solved: 1690 [Submit][Stat ...
- bzoj3670 [Noi2014]动物园
[Noi2014]动物园 Time Limit: 10 Sec Memory Limit: 512 MB Description 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游 ...
- bzoj-3670 [Noi2014]动物园
3670: [Noi2014]动物园 题目链接 时间限制: 10 Sec 内存限制: 512 MB 提交: 3558 解决: 1925 [提交][][] 题目描述 近日,园长发现动物园中好吃懒做的动物 ...
- P2375 [NOI2014] 动物园 kmp fail指针/倍增
传送门 文章目录 题意: 思路: 题意: 思路: 由kmpkmpkmp中失配数组nenene的含义我们知道,ne[i],ne[ne[i]],...ne[i],ne[ne[i]],...ne[i],ne ...
- bzoj 3670 [NOI2014]动物园
3670: [Noi2014]动物园 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 2032 Solved: 1077 [Submit][Stat ...
- 洛谷P2375 [NOI2014] 动物园 题解
洛谷P2375 [NOI2014] 动物园 题解 题目链接:P2375 [NOI2014] 动物园 题意: 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物 ...
- BZOJ3670: [Noi2014]动物园
Description 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己的真才实学向游客要吃的,园长决定开设算法班,让动物们学习 ...
- BZOJ3670 NOI2014 动物园 题解代码
利用了kmp的next数组特性,求出既是i位字符串的前缀又是其后缀的字符串个数num[i],然后按表达式求出积即可 首先进行统计,在求next的时候就可以统计出num[i]了[对于每一个p=next[ ...
- bzoj 3670: [Noi2014]动物园 kmp与扩展kmp
bzoj 3670: [Noi2014]动物园容 Description 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己的真才 ...
- [NOI2014]动物园
嘟嘟嘟 NOI2014水题第二道. 起手暴力,神经兮兮的写了个\(O(Tn ^ 2)\)的双哈希,只得了30分.(5e8开O2果然跑不过去) 昨晚写的暴力,今天又看了看这道题,发现就是求一个点跳多少次 ...
最新文章
- java-jwt这个库没用过吧?
- matlab中读文件的行数_Matlab中读取txt文件的几种方法
- matlab读取文件与写入文件
- WPF 打印不显示的元素
- 移动端数据爬取和Scrapy框架
- button css背景透明,css背景透明
- 解决webSocket不兼容IE浏览器问题
- IntelliJ IDEA中文汉化教程
- html卷轴展开动画,Flash制作卷轴展开的动画
- 计算机B类会议排名,计算机学科会议排名
- 10019---Linux查看CPU、内存、硬盘、版本信息
- 【Camera】Camera基础概念
- c语言程序实现进程的管道通信,C 进程间通信--命名管道通信代码实现及其原理图示...
- 课设复习之信息论固定算术编码与译码
- 猫狗二分类实战(PyTorch)
- Keil MDK 选中相同变量 高亮突出显示
- Python将字符串转换成dataframe
- 学习C语言的网站(中文的英文的都有)
- 想知道微信名片怎么弄?其实很容易
- MySQL 让你拥有不一样感觉
热门文章
- 通信原理包络是什么意思_直缝钢管的矫直原理
- v-solt插槽实践用法讲解
- 使用gphotos-sync备份Google 相册
- 天秀,“手机” 也可以写Python代码了!
- 笔记本计算机盖上盖子关机,笔记本电脑不关机就盖上盖子,这样好吗
- Python抓取桌面截图
- MITO-ID线粒体膜电位细胞毒性试剂盒解决方案
- JavaScript Promise 教程 - 如何在 JS 中解决或拒绝 Promise
- 是计算机系男神女神用英语怎么说,Azzurro意大利私房菜(购物公园店)
- 串口服务器Moxa NPort 5650小结