Description

“Madoka,不要相信 QB!”伴随着 Homura 的失望地喊叫,Madoka 与 QB 签订了契约.
这是 Modoka 的一个噩梦,也同时是上个轮回中所发生的事.为了使这一次 Madoka 不再与 QB签订契约,Homura 决定在刚到学校的第一天就解决 QB.然而,QB 也是有许多替身的(但在第八话中的剧情显示它也有可能是无限重生的),不过,意志坚定的 Homura 是不会放弃的——她决定
消灭所有可能是 QB 的东西.现在,她已感受到附近的状态,并且把它转化为一个长度为 n 的字符串交给了学 OI 的你.
现在你从她的话中知道 , 所有形似于 A+B+A 的字串都是 QB 或它的替身 , 且len(A)>=k,len(B)>=1 (位置不同其他性质相同的子串算不同子串,位置相同但拆分不同的子串算同一子串),然后你必须尽快告诉 Homura 这个答案——QB 以及它的替身的数量.

Input

第一行一个字符串,第二行一个数 k

Output

仅一行一个数 ans,表示 QB 以及它的替身的数量

Sample Input

【样例输入 1】
aaaaa
1
【样例输入 2】
abcabcabc
2

Sample Output

【样例输出 1】
6

【样例输出 2】
8

HINT

对于 100%的数据:n<=15000 , k<=100,且字符集为所有小写字母

Source

2014湖北省队互测week2

首先KMP是前缀等于后缀,所以它并不能很好的解决子串问题;

但是这个题的正解是n^2的,所以我们可以枚举起点位置i,然后对以起点位置开始到结尾的串重构一个nxt数组,

然后对于起点i,到终点j,就可以通过kmp前缀等于后缀的方法check是否合法了,然后就是跟动物园类似的做法,然后判断一下g>=k即可;

然而我这个题目因为没有想到重构nxt做了好久。。。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define RG register
using namespace std;
const int N=15050;
int nxt[N],cnt[N],len,k,ans;
char s[N],a[N];
void work(int x){int len2=0;memset(nxt,0,sizeof(nxt));for(int i=x;i<=len;i++) a[++len2]=s[i];int j=0;for(int i=2;i<=len2;i++){while(j&&a[j+1]!=a[i]) j=nxt[j];if(a[j+1]==a[i]) j++;nxt[i]=j;}j=0;for(int i=2;i<=len2;i++){while(j&&a[j+1]!=a[i]) j=nxt[j];if(a[j+1]==a[i]) j++;while(2*j+1>i&&j) j=nxt[j];if(j>=k) ans++;}
}
int main(){scanf("%s",s+1);len=strlen(s+1);scanf("%d",&k);for(int i=1;i<=len;i++) work(i);printf("%d",ans);
}

  

转载于:https://www.cnblogs.com/qt666/p/7163395.html

bzoj 3620: 似乎在梦中见过的样子相关推荐

  1. BZOJ 3620 似乎在梦中见过的样子 KMP+暴力

    题目大意:给定一个字符串,求这个字符串有多少个子串满足这个子串可以拆分成ABA的形式,其中|A|>=k,|B|>=1 梦の中で逢った.ような-... n<=15000 显然是直接给你 ...

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

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

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

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

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

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

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

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

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

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

  7. 第2部分 字符串算法(提高篇)--第2章 KMP算法1469:似乎在梦中见过的样子

    1469:似乎在梦中见过的样子 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 476 通过数: 159 [题目描述] 原题来自:2014 年湖北省队互测 Week2 「Madok ...

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

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

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

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

最新文章

  1. java foreach 原理_一不小心就让Java开发者踩坑的failfast是个什么鬼?
  2. 深度 | 学习如何学习的算法:简述元学习研究方向现状
  3. 字符设备驱动笔记(一)
  4. 怎么查看linux文件夹下有多少个文件(mac同样)
  5. ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock
  6. Jenkins X基本概念:Jenkins K8S helm Draft gitops
  7. ABAP BSP的工具类CL_BSP_UTILITY
  8. latex学习篇【一】论文中的图片技巧QA
  9. 计算机组成原理综合题,2013计算机组成原理复习题.doc
  10. delphi 中assert
  11. Xcode9安装插件,xcode9安装使用Alcatraz
  12. 规范化理论:无损分解的测试算法
  13. Racket编程指南——24 命令行工具和你的编辑器选择
  14. 一个游戏出中文版需要通过什么审核?(转自知乎)
  15. 论文阅读 (54):DeepFool: A Simple and Accurate Method to Fool Deep Neural Networks
  16. azul zing_微软和Azul将OpenJDK提升到Azure云中
  17. 2020.11.09-2020.11.15工作周报
  18. arcgis中的标注和注记
  19. 有什么好用又简约的便签值得推荐?
  20. stinger 小型机器人_铁甲大百科——史上最全格斗机器人类型解析,哪类机器人最酷炫?...

热门文章

  1. 百度实习两个月小结~
  2. 十年 (2002.6.18)--黑色的2002年世界杯,足球之耻辱
  3. PostgreSQL 14和SCRAM认证的改变--应该迁移到SCRAM?
  4. SQLite查询记录总数
  5. mysql from 嵌套查询,MySQL嵌套查询实例详解
  6. matlab plotroc 画roc曲线
  7. CBInsights 2019金融科技趋势报告:东南亚、拉美成新宠,IPO脚步恐放缓(附全文下载)...
  8. 中国移动光猫怎么进网页服务器,中国移动光猫设置方法(192.168.1.1进不了光猫)...
  9. [转]git图解(3):分支操作
  10. ML / SML 常见错误解决办法