题目大意:给定一个字符串,求这个字符串有多少个子串满足这个子串可以拆分成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+暴力相关推荐

  1. bzoj 3620: 似乎在梦中见过的样子 kmp暴力

    这道题目感觉上好像是可以用SA过掉的..但是看一下N15000然后Statue里面一个个都6000+ms,翻了一下题解发现是kmp暴力. 打了一半发现不会然后回去看题目,发现位置相同但是结构不懂的子串 ...

  2. BZOJ[3620]似乎在梦中见过的样子 KMP

    传送门ber~ 这题-不是和BZOJ[3670]那题一样吗? 对每一个位置进行两遍KMP,第一遍求出nex数组后再进行一遍以统计合法答案 比那题多个判断条件-其余一模一样 代码如下: #include ...

  3. bzoj 3620: 似乎在梦中见过的样子 kmp算法+暴力

    题意 "Madoka,不要相信 QB!"伴随着 Homura 的失望地喊叫,Madoka 与 QB 签订了契约. 这是 Modoka 的一个噩梦,也同时是上个轮回中所发生的事.为了 ...

  4. bzoj 3620: 似乎在梦中见过的样子

    Description "Madoka,不要相信 QB!"伴随着 Homura 的失望地喊叫,Madoka 与 QB 签订了契约. 这是 Modoka 的一个噩梦,也同时是上个轮回 ...

  5. 【BZOJ 3620】 3620: 似乎在梦中见过的样子 (KMP)

    3620: 似乎在梦中见过的样子 Time Limit: 15 Sec  Memory Limit: 128 MB Submit: 755  Solved: 445 Description " ...

  6. 似乎在梦中见过的样子 (KMP)

    # 10047. 「一本通 2.2 练习 3」似乎在梦中见过的样子 [题目描述] 「Madoka,不要相信 QB!」伴随着 Homura 的失望地喊叫,Madoka 与 QB 签订了契约. 这是 Mo ...

  7. 【BZOJ3620】似乎在梦中见过的样子 KMP

    链接: #include <stdio.h> int main() {puts("转载请注明出处[vmurder]谢谢");puts("网址:blog.csd ...

  8. 【bzoj3620】 似乎在梦中见过的样子 KMP

    一开始看到数据范围是15000就往后缀数组上想,想了好久没想出来怎么处理同一子串的问题,后来看了看题解才发现O(n^2)就可以过,用KMP类似NOI2014动物园的算法一样.枚举左端点,对于每个右端点 ...

  9. 【kmp】似乎在梦中见过的样子

    参考博客: BZOJ 3620: 似乎在梦中见过的样子 [KMP]似乎在梦中见过的样子 题目描述 「Madoka,不要相信QB!」伴随着Homura的失望地喊叫,Madoka与QB签订了契约. 这是M ...

最新文章

  1. 超星未来发布新一代高级别自动驾驶车载计算平台
  2. getopt函数—分析命令行参数
  3. react使用link跳转传递参数_React-Typescript之路由跳转(使用this.props.history.push)
  4. Windows下UAC安全机制笔记
  5. 用EnumMaps映射枚举键
  6. 怎么用记事本写java_如何用记事本写下第一个Java程序-Fun言
  7. 轨迹相似性度量之基于Hausdorff与LCSS的理解
  8. vs2015移植linux编译,windows平台移植(原linux项目)时,用vs2015开发,碰到的问题及处理方案记录...
  9. 你想过没有,学校从来没教过你怎么赚钱
  10. jquery.zclip轻量级复制失效问题
  11. 突发!四川长宁发生6.0级地震
  12. centos 7 修改ip
  13. 中海达数据怎么转rinex_GPS_OEM原始数据向Rinex格式转换的方法
  14. 中信银行c语言笔试题库,中信银行笔试IT类复习题参考资料带答案解析.doc
  15. 在电脑上怎么压缩ppt文件?
  16. laravel 查询语句
  17. java stl 模型 切片_使用 Materialise magics 对 STL文件进行切片
  18. 谈谈对CNN在NLP中可行性的理解
  19. 有python画螺旋线
  20. 关于谷歌邮箱注册收不到验证码——”此电话号码无法用于验证“的问题

热门文章

  1. rancher k8s 对接 ceph 存储
  2. MyBits的创建与使用
  3. 华红兵:2019手机核心竞争力已从产品转移到服务!
  4. C语言:编写函数fun,求任一整数m的n次方。
  5. php定义常量的函数是,在PHP中定义常量的函数是( )。
  6. ImportError: cannot import name ‘Markup‘ from ‘jinja2‘
  7. [转载]chrome中非https无法打开摄像头
  8. HTB-Busqueda
  9. distribute-list
  10. 阿里DTS 学习笔记