POJ 2752 Seek the Name, Seek the Fame (KMP)
2013-10-19 14:16
609 查看
传送门 http://poj.org/problem?id=2752
题目大意:求既是前缀又是后缀的前缀的可能的长度。。
同样是KMP,和 HDU 2594 Simpsons’ Hidden Talents ( /article/1608257.html) 一样,只不过这题是全部输出而已。
故利用失配函数性质,一路next(好吧我的代码是f),最后倒序输出
题目大意:求既是前缀又是后缀的前缀的可能的长度。。
同样是KMP,和 HDU 2594 Simpsons’ Hidden Talents ( /article/1608257.html) 一样,只不过这题是全部输出而已。
故利用失配函数性质,一路next(好吧我的代码是f),最后倒序输出
#include<cstdio> #include<cstring> const int MAXN=400000+10; char P[MAXN]; int f[MAXN]; int n,m; int ans[MAXN]; void getFail() { int i,j; f[0]=f[1]=0; for(i=1;i<n;i++) { j=f[i]; while(j && P[i]!=P[j]) j=f[j]; if(P[i]==P[j]) j++; f[i+1]=j; } } int main() { while(scanf("%s",P)!=EOF) { n=strlen(P); getFail(); int len=0; int j=n; do { ans[len++]=j; j=f[j]; }while(j); for(int i=len-1;i>=1;i--) { printf("%d ",ans[i]); } printf("%d\n",ans[0]); } }
相关文章推荐
- Openfire 单人聊天和多人聊天(发送消息、接收消息)
- POJ 2752 Seek the Name, Seek the Fame (KMP)
- TCP、UDP协议详解
- PL/SQL复合类型变量的使用(record、pl/sql表、bulk collect)
- 重写mbr后 no bootable device insert boot disk and press any key
- HDOJ 1003
- Java IO流分析整理[转]
- 刚安装时mysql不能修改密码以及忘记root密码
- 3GP/MP4 视频文件格式解析及其播放原理(转)
- 使用IBinder的linkToDeath机制来释放资源
- php用户注册页面使用js进行表单验证具体实例
- php上传文件,创建递归目录的实例代码
- 不好好读书,将来连表都不认识
- MVC模式下My97DatePicker日期控件引用注意事项
- asp.net mvc 3 获取路由领域名
- Goegraphic routing
- Jmeter
- 3种权限管理方案
- javascript打开新窗体
- peizhi eclipse