poj2752
找所有的前缀等于后缀,那就是找所有前缀等于后缀的前缀,递归再用栈存一下

#include<iostream>
#include<cstdio>
#include<queue>
#include<algorithm>
#include<cmath>
#include<ctime>
#include<set>
#include<map>
#include<stack>
#include<cstring>
#define inf 2147483647
#define ls rt<<1
#define rs rt<<1|1
#define lson ls,nl,mid,l,r
#define rson rs,mid+1,nr,l,r
#define N 400010
#define For(i,a,b) for(int i=a;i<=b;i++)
#define p(a) putchar(a)
#define g() getchar() using namespace std;
int kmp[N];
int lb,k;
char b[N];
stack<int>s;
void in(int &x){
int y=;
char c=g();x=;
while(c<''||c>''){
if(c=='-')y=-;
c=g();
}
while(c<=''&&c>=''){
x=(x<<)+(x<<)+c-'';c=g();
}
x*=y;
}
void o(int x){
if(x<){
p('-');
x=-x;
}
if(x>)o(x/);
p(x%+'');
} void clear(){
k=;
memset(kmp,,sizeof(kmp));
} int main(){
while(cin>>(b+)){
clear();
lb=strlen(b+);
For(i,,lb){
while(k&&b[i]!=b[k+])
k=kmp[k];
if(b[k+]==b[i])
k++;
kmp[i]=k;
}
k=lb;
s.push(lb);
while(kmp[k]>){
s.push(kmp[k]);
k=kmp[k];
}
while(!s.empty()){
o(s.top());p(' ');
s.pop();
}
p('\n');
}
return ;
}

最新文章

  1. git 使用
  2. JNDI
  3. [转载] Ubuntu 16.04 LTS 一键安装VNC
  4. oracle分组后取每组第一条数据
  5. 【原】结构体包含CString类型成员变量出错的原理
  6. [AapacheBench工具]web性能压力测试工具的应用与实践
  7. 每天一个linux命令(20):linux chmod命令
  8. DISCUZ! X2.5设置仅允许QQ登录注册论坛 加固会员注册机制
  9. linux乱码问题:LANG变量的秘诀
  10. 判断Http请求由手机端发起,还是有电脑端发起
  11. 计算球体积,hdu-2002
  12. 注解框架---AndroidAnnotations
  13. windows 激活等命令
  14. 21 ArcMap 10.6.1 添加Excel格式数据
  15. ARM核心板_迅为4412核心板_核心板中的小新潮
  16. webstorm加载项目卡死在scanning files to index
  17. 10,关于在vs2017中的netcore项目使用BundlerMinifier 配置问题
  18. DS二叉树--层次遍历
  19. kafka清理
  20. quast-lg

热门文章

  1. PyInstaller打包Python源文件为可执行程序exe
  2. SQL语句中exists和in的区别
  3. 转为win64后, MS的lib问题
  4. input 不显示输入的历史记录
  5. JS规则 较量较量(比较操作符) 两个操作数通过比较操作符进行比较,得到值为真(true)和假(false)。【&gt;; &lt;; &gt;=; &lt;=; !=;==】
  6. POJ1160 Post Office-四边形不等式优化DP
  7. phonegap 拍照上传照片
  8. unordered_map
  9. mysql主从跳过错误
  10. 使用fileupload实现文件上传