BZOJ 3620 似乎在梦中见过的样子 KMP+暴力
题目大意:给定一个字符串,求这个字符串有多少个子串满足这个子串可以拆分成ABA的形式,其中|A|>=k,|B|>=1
梦の中で逢った、ような…...
n<=15000 显然是直接给你暴力用的- -
枚举子串的左端点,然后枚举右端点
对于每个子串S我们要判定是否存在一个长度在[k,|S|-1>>1]之间的前缀与后缀匹配
那我们就求出长度不超过|S|-1>>1的最长前后缀,判断是否>=k即可
这怎么和去年NOI的某道【植物园】很像。。。呵呵。。。
于是常数略大,光荣垫底
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define M 15010
using namespace std;
int n,k,ans;
int next[M];
char s[M];
void KMP(char *s)
{int i,fix=0;for(i=2;s[i];i++){while( fix && s[fix+1]!=s[i] )fix=next[fix];if( s[fix+1]==s[i] )++fix;next[i]=fix;}fix=0;for(i=1;s[i];i++){while( fix && s[fix+1]!=s[i] )fix=next[fix];if( s[fix+1]==s[i] )++fix;while( fix<<1>=i )fix=next[fix];if(fix>=k)++ans;}
}
int main()
{int i;scanf("%s",s+1);cin>>k;for(i=0;s[i+1];i++)KMP(s+i);cout<<ans<<endl;return 0;
}
BZOJ 3620 似乎在梦中见过的样子 KMP+暴力相关推荐
- bzoj 3620: 似乎在梦中见过的样子 kmp暴力
这道题目感觉上好像是可以用SA过掉的..但是看一下N15000然后Statue里面一个个都6000+ms,翻了一下题解发现是kmp暴力. 打了一半发现不会然后回去看题目,发现位置相同但是结构不懂的子串 ...
- BZOJ[3620]似乎在梦中见过的样子 KMP
传送门ber~ 这题-不是和BZOJ[3670]那题一样吗? 对每一个位置进行两遍KMP,第一遍求出nex数组后再进行一遍以统计合法答案 比那题多个判断条件-其余一模一样 代码如下: #include ...
- bzoj 3620: 似乎在梦中见过的样子 kmp算法+暴力
题意 "Madoka,不要相信 QB!"伴随着 Homura 的失望地喊叫,Madoka 与 QB 签订了契约. 这是 Modoka 的一个噩梦,也同时是上个轮回中所发生的事.为了 ...
- bzoj 3620: 似乎在梦中见过的样子
Description "Madoka,不要相信 QB!"伴随着 Homura 的失望地喊叫,Madoka 与 QB 签订了契约. 这是 Modoka 的一个噩梦,也同时是上个轮回 ...
- 【BZOJ 3620】 3620: 似乎在梦中见过的样子 (KMP)
3620: 似乎在梦中见过的样子 Time Limit: 15 Sec Memory Limit: 128 MB Submit: 755 Solved: 445 Description " ...
- 似乎在梦中见过的样子 (KMP)
# 10047. 「一本通 2.2 练习 3」似乎在梦中见过的样子 [题目描述] 「Madoka,不要相信 QB!」伴随着 Homura 的失望地喊叫,Madoka 与 QB 签订了契约. 这是 Mo ...
- 【BZOJ3620】似乎在梦中见过的样子 KMP
链接: #include <stdio.h> int main() {puts("转载请注明出处[vmurder]谢谢");puts("网址:blog.csd ...
- 【bzoj3620】 似乎在梦中见过的样子 KMP
一开始看到数据范围是15000就往后缀数组上想,想了好久没想出来怎么处理同一子串的问题,后来看了看题解才发现O(n^2)就可以过,用KMP类似NOI2014动物园的算法一样.枚举左端点,对于每个右端点 ...
- 【kmp】似乎在梦中见过的样子
参考博客: BZOJ 3620: 似乎在梦中见过的样子 [KMP]似乎在梦中见过的样子 题目描述 「Madoka,不要相信QB!」伴随着Homura的失望地喊叫,Madoka与QB签订了契约. 这是M ...
最新文章
- 超星未来发布新一代高级别自动驾驶车载计算平台
- getopt函数—分析命令行参数
- react使用link跳转传递参数_React-Typescript之路由跳转(使用this.props.history.push)
- Windows下UAC安全机制笔记
- 用EnumMaps映射枚举键
- 怎么用记事本写java_如何用记事本写下第一个Java程序-Fun言
- 轨迹相似性度量之基于Hausdorff与LCSS的理解
- vs2015移植linux编译,windows平台移植(原linux项目)时,用vs2015开发,碰到的问题及处理方案记录...
- 你想过没有,学校从来没教过你怎么赚钱
- jquery.zclip轻量级复制失效问题
- 突发!四川长宁发生6.0级地震
- centos 7 修改ip
- 中海达数据怎么转rinex_GPS_OEM原始数据向Rinex格式转换的方法
- 中信银行c语言笔试题库,中信银行笔试IT类复习题参考资料带答案解析.doc
- 在电脑上怎么压缩ppt文件?
- laravel 查询语句
- java stl 模型 切片_使用 Materialise magics 对 STL文件进行切片
- 谈谈对CNN在NLP中可行性的理解
- 有python画螺旋线
- 关于谷歌邮箱注册收不到验证码——”此电话号码无法用于验证“的问题
热门文章
- rancher k8s 对接 ceph 存储
- MyBits的创建与使用
- 华红兵:2019手机核心竞争力已从产品转移到服务!
- C语言:编写函数fun,求任一整数m的n次方。
- php定义常量的函数是,在PHP中定义常量的函数是( )。
- ImportError: cannot import name ‘Markup‘ from ‘jinja2‘
- [转载]chrome中非https无法打开摄像头
- HTB-Busqueda
- distribute-list
- 阿里DTS 学习笔记