题目为中文,因而不再解释题意。

首先遵循如下设定可以有以下几个结论:
1,首先谈论下KMP的一个特殊性质:对于某一个特立独行的字符串:例如ABCDEF,在建立有限状态自动机之后,都会有,所有元素的失配边,指向0,也就是初始的那个元素。此时我们可以讲这个独立的元素及之前字符串理解为“ 一个循环次数为1的循环串 ”。对于其他情况,形如:ABCDEFGAB,可以将ABCDEFG理解为一个循环串,AB为下一个循环的两个多余元素,因此,我们可以把任意字符串看成“ 一个循环串+若干独立元素 ”的巧妙形式。

2,对于该形式,都可以发现,对于第K号元素最小循环节的尺寸应当为“ K-F[K] ”(随着规约不同增减1,此处采用刘汝佳蓝书中KMP的规约),那么,我们可以在这个基础上求出来“最小循环节”循环的次数——K/(K-F[K])。

3,应当认为,任意一个串,都构成(AB)*N+A的的形式。区别仅仅在于N的取值

4,应当认为,任何一个循环串,形如(A+B)*N,都自然的可以被认为是(A+B+A+B)*N+(A+B)*k的形式,即可以将若干个相同的循环节看成一个大的循环节。

5,前文中,我们知道了,“如何求出循环串的最小循环节”,以及“最小循环节的长度”,从而可以求出“最小循环节出现的次数”。则对于给定目标m来说,很容易求出,满足有且仅有M个大循环节时,每个大循环节的 “  最小循环体数量    ”,同时,也可以求出来,在满足上述条件后,“ 剩余的循环体数量 ”容易理解,在任何情况下,剩余的循环体数量大于最小循环体数量则构成一个新的循环,意味着M+1明显不符合题设,应当直接排出。

回过头来发现刘汝佳蓝书第一道练习例题就讲的是这个233333333333

放AC代码如下:

#include<bits/stdc++.h>
using namespace std; const long long MAXN=; char tar[MAXN];
long long f[MAXN]; long long n,m;
void init()
{
cin>>n>>m;
cin>>tar; f[]=;f[]=;
for(int i=;i<n;++i)
{
int j=f[i];
while(j&&tar[i]!=tar[j])j=f[j];
f[i+]= tar[i]==tar[j]? j+:;
}
} int main()
{
cin.sync_with_stdio(false);
init();
for(int i=;i<=n;++i)
{
int val=i/(i-f[i]);
if(i%(i-f[i]))
{
if(val/m>val%m)cout<<;
else cout<<;
}else
{
if(val/m>=val%m)cout<<;
else cout<<;
}
} return ;
}

最新文章

  1. 基于Flume+LOG4J+Kafka的日志采集架构方案
  2. Java多线程总结(一)多线程基础
  3. Memcached 笔记与总结(9)Memcached 与 Session
  4. PHP文件上传错误类型及说明
  5. ubuntu错误解决。
  6. [置顶] 纯手工打造漂亮的瀑布流,五大插件一个都不少Bootstrap+jQuery+Masonry+imagesLoaded+Lightbox!
  7. Activity的生命周期与加载模式——Activity的生命周期演示
  8. zookeeper curator处理会话过期session expired
  9. BZOJ 1488: [HNOI2009]图的同构 [Polya]
  10. Python猜数小游戏
  11. kali自定义分辨率(1920*1080)
  12. [PHP] 算法-邻接矩阵图的广度和深度优先遍历的PHP实现
  13. Codeforces Beta Round #17 A.素数相关
  14. mini filter driver sql server
  15. modelsim 的高效使用
  16. Swift2.0-异常处理(Exception handler)
  17. Django项目的ORM操作之--模型类数据查询
  18. 具体数学数论章-----致敬Kunth
  19. phpStudy启动失败时的解决方法 提示缺vc9运行库
  20. Ansible学习 Playbooks_1

热门文章

  1. springboot集成freemarker 配置application.properties详解
  2. 【iOS学习笔记】改变状态栏字体颜色
  3. cms-帖子内容实现2
  4. cms-框架搭建
  5. CSS第二节
  6. LeetCode Merge Sorted Array 合并已排序的数组
  7. Dll注入:X86/X64 远程线程CreateRemoteThread 注入
  8. SAP成都研究院的体育故事
  9. WCF的问题
  10. 【BZOJ1833】[ZJOI2010] count 数字计数(数位DP)