【BZOJ3620】似乎在梦中见过的样子 KMP
链接:
#include <stdio.h>
int main()
{puts("转载请注明出处[vmurder]谢谢");puts("网址:blog.csdn.net/vmurder/article/details/44500477");
}
题解:
对于一个区间[l,r][l,r] , 若存在一个长度≥k\ge k并且<r−l2 的串K,它既相同于以ll为开端的等长串,又相同于以rr为结尾的等长串,那么这个区间就是一个可行串。
我们枚举区间左端点,然后可以利用KMP在线性的时间内处理完所有的右端点对答案的贡献。
代码:
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define N 16000
using namespace std;
int pre[N],fix,n,m,ans;
char s[N];
int main()
{freopen("test.in","r",stdin);int i,j,k;scanf("%s%d",s+1,&m);n=strlen(s+1);int uplimit=n-m-m;for(k=0;k<uplimit;k++){// 数组右移k位for(fix=0,i=2;i+k<=n;i++){while(fix&&s[i+k]!=s[fix+1+k])fix=pre[fix];if(s[i+k]==s[fix+1+k])fix++;pre[i]=fix;}for(fix=0,i=m+1;i+k<=n;i++){while(fix&&s[i+k]!=s[fix+1+k])fix=pre[fix];if(s[i+k]==s[fix+1+k])fix++;while(fix<<1>=i)fix=pre[fix];if(fix>=m)ans++;}}printf("%d\n",ans);return 0;
}
【BZOJ3620】似乎在梦中见过的样子 KMP相关推荐
- 似乎在梦中见过的样子 (KMP)
# 10047. 「一本通 2.2 练习 3」似乎在梦中见过的样子 [题目描述] 「Madoka,不要相信 QB!」伴随着 Homura 的失望地喊叫,Madoka 与 QB 签订了契约. 这是 Mo ...
- BZOJ 3620 似乎在梦中见过的样子 KMP+暴力
题目大意:给定一个字符串,求这个字符串有多少个子串满足这个子串可以拆分成ABA的形式,其中|A|>=k,|B|>=1 梦の中で逢った.ような-... n<=15000 显然是直接给你 ...
- [BZOJ3620]似乎在梦中见过的样子(kmp)
题目描述 传送门 题目大意:给出一个字符串,求有多少个子串满足是A+B+A的形式,其中|A|>=k,|B|>=1. 题解 做这道题之前就已经知道了资瓷O(n2)O(n^2)的kmp 然后就 ...
- 【bzoj3620】 似乎在梦中见过的样子 KMP
一开始看到数据范围是15000就往后缀数组上想,想了好久没想出来怎么处理同一子串的问题,后来看了看题解才发现O(n^2)就可以过,用KMP类似NOI2014动物园的算法一样.枚举左端点,对于每个右端点 ...
- bzoj 3620: 似乎在梦中见过的样子 kmp算法+暴力
题意 "Madoka,不要相信 QB!"伴随着 Homura 的失望地喊叫,Madoka 与 QB 签订了契约. 这是 Modoka 的一个噩梦,也同时是上个轮回中所发生的事.为了 ...
- bzoj 3620: 似乎在梦中见过的样子 kmp暴力
这道题目感觉上好像是可以用SA过掉的..但是看一下N15000然后Statue里面一个个都6000+ms,翻了一下题解发现是kmp暴力. 打了一半发现不会然后回去看题目,发现位置相同但是结构不懂的子串 ...
- BZOJ[3620]似乎在梦中见过的样子 KMP
传送门ber~ 这题-不是和BZOJ[3670]那题一样吗? 对每一个位置进行两遍KMP,第一遍求出nex数组后再进行一遍以统计合法答案 比那题多个判断条件-其余一模一样 代码如下: #include ...
- 【BZOJ 3620】 3620: 似乎在梦中见过的样子 (KMP)
3620: 似乎在梦中见过的样子 Time Limit: 15 Sec Memory Limit: 128 MB Submit: 755 Solved: 445 Description " ...
- 【kmp】似乎在梦中见过的样子
参考博客: BZOJ 3620: 似乎在梦中见过的样子 [KMP]似乎在梦中见过的样子 题目描述 「Madoka,不要相信QB!」伴随着Homura的失望地喊叫,Madoka与QB签订了契约. 这是M ...
最新文章
- java I/O之装饰者模式
- 深度分享:世界顶级神经科学家王小勤教授CCL 2018主旨报告(PPT全文,经报告人同意发布)...
- 深入理解Java中的final关键字
- python、PyTorch图像读取与numpy转换
- Dockerfile使用,怎么通过Dockerfile完成docker映像配置
- C++实现0-1-knapsack背包问题 (附完整源码)
- 阿里云力夺FewCLUE榜首!知识融入预训练+小样本学习的实战解析
- VS2010建立Windows服务项目时的一些问题
- zedboard--zynq使用自带外设IP让ARM PS访问FPGA(八) 转载
- 阿里云混合云管理平台发布帮您管好云
- powerdesigner 16设计mysql数据库_PowerDesigner16 连接MySql 报错
- 剑指offer java -查找旋转数组的最小数字
- FireFox如何使用扩展
- 虚拟服务器不识别网银盾,电脑浏览器无法使用建行E路航网银盾的解决方法
- 15岁黑客Cosmo的堕落历程
- linux yum 安装播放器,centos5下用yum安装MPlayer播放器
- Vue高仿网易云音乐APP (vue.js 移动端)
- ssh连接服务器 一段时间不动后 无响应
- 【论文笔记】CS会议论文书写注意点
- c汇编语言例题,第三章 汇编语言程序设计例题习题
热门文章
- MACBOOK安装WIN7(单系统)
- 南京理工大学 计算机调剂科目,南京理工大学2019考研调剂信息
- (9)3DMAX之复制功能(复制属性、变换复制、阵列工具、间隔工具)
- 基于SSM实现人事管理系统
- shell脚本上传文件到ftp服务器,shell脚本实现FTP自动上传文件
- Web车牌识别中API接口的调用
- uni-app吊起微信公众号支付
- Intel software developer manual
- 【网易公开日】《梦幻西游》手游服务器如何实现200万玩家同时在线?(技术篇)
- 如何使用SPSS利用交叉表计算疾病相对危险度