BZOJ_P3620 似乎在梦中见过的样子(KMP)
2016-02-28 18:28
211 查看
BZOJ传送门
Time Limit: 15 Sec Memory Limit: 128 MB
Submit: 351 Solved: 194
[Submit][Status][Discuss]
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
Time Limit: 15 Sec Memory Limit: 128 MB
Submit: 351 Solved: 194
[Submit][Status][Discuss]
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
#include<cstdio> #include<cstring> #include<iostream> using namespace std; #define N 15005 char s ;int f ; int k,l,ans,lim; int main(){ scanf("%s%d",s+1,&k);l=strlen(s+1);lim=l-k*2; for(int p=0;p<lim;p++){ for(int j=0,i=2;i+p<l;i++){ while(j&&s[j+p+1]!=s[i+p]) j=f[j]; if(s[i+p]==s[j+p+1]) j++;f[i]=j; } for(int j=0,i=k+1;i+p<=l;i++){ while(j&&s[i+p]!=s[j+p+1]) j=f[j]; if(s[i+p]==s[j+p+1]) j++; while((j<<1)>=i) j=f[j];if(j>=k) ans++; } } printf("%d\n",ans); return 0; }
相关文章推荐
- Ubuntu14.0.4下Hbase1.1.3单机模式部署
- linux grep命令详解
- (p171)基数树
- 利用jackson-dataformat-csv读写csv文件
- UESTC 1137 邱老师选妹子 dp:?这个难道不是暴力法
- 13.UiAutomator 辅助APK的使用
- [国嵌攻略][083][信号互斥编程]
- git教程--git版本库的使用
- 玩转Windows服务系列汇总
- 数组指针的理解
- iOS实践01
- RF设计天线 PI型匹配layout注意事项–物联网设计小技巧
- thrift学习第二步,一个简单的双向通信demo以及原理讲解,以及注意事项
- 腾讯云 ubuntu服务器mysql安装和外网访问
- 各种设备屏幕分辨率
- poj 1222: EXTENDED LIGHTS OUT
- HDU 5626
- nginx+uwsgi 上搭建keystone
- 浅谈一类积性函数的前缀和
- 【高效生活】从ER图到数据库的一条龙服务