循环节(SDUT 2747)
来源:互联网 发布:开源平台系统源码 编辑:程序博客网 时间:2024/05/04 17:12
循环节
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
X最近爱上了一种奇怪的游戏,就是找出一个字符串中的最小循环节。
对于最小循环节的定义:对于字符串A存在字串B,使得A是由N个完整的B组成的,那么B就是A的一个循环节,长度最小的那一个为最小循环节。
输入
多组输入。
每组输入一个字符串,长度不大于80,只包含26个小写字母。
输出
输出一个字符串,代表最小循环节。
示例输入
aaaaabab
示例输出
aab
提示
来源
zmx
示例程序
方法一
白皮书上的优化算法~orz。
<pre class="html" name="code">#include <stdio.h>#include <string.h>int main(){ char str[100]; int len,i,j,k; int flag=0; while(~scanf("%s",str)) { len = strlen(str); for(i=1; i<=len; i++) if(len%i==0) { flag = 1; for(j=i;j<len;j++) { if( str[j]!=str[j%i] ) { flag = 0; break; } } if(flag) { for(k=0; k<i; k++) { printf("%c", str[k] ); } printf("\n"); break; } } } return 0;}
方法二
KMP
这里膜拜一下YanBaoC 这是他的代码 拿来一用
<pre class="html" name="code">#include <stdio.h>#include <stdlib.h>#include <string.h>int getnext(char *s){ int next[81]; int i=0,j=next[0]=-1; int l=strlen(s); while(i<l){ if(j==-1||s[i]==s[j]){ i++; j++; if(s[i]==s[j]) next[i]=next[j]; else next[i]=j; } else j=next[j]; } if(l%(l-next[l])==0) return l/(l/(l-next[l])); else return l/1;}int main(void){ char s[81]; int i,j; while(scanf("%s",s)==1){ j=getnext(s); for(i=0;i<j;i++) printf("%c",s[i]); printf("\n"); } return 0;}
0 0
- 循环节(SDUT 2747)
- [2747]循环节(next数组) SDUT
- SDUT 最小循环节(next数组应用)
- SDUT 2044 Number Sequence(循环)
- SDUT 1122 判断素数(循环结构)
- POJ 1961Period / POJ 2406 Power Strings / POJ 3461 Oulipo /SDUT 2747 循环节 初涉KMP
- 【2056】不敢死队问题(循环链表)SDUT
- [1197]约瑟夫问题 (循环链表)SDUT
- sdut oj1197 约瑟夫问题(循环链表)
- sdut 1197-约瑟夫问题(循环链表)
- SDUT 2056 不敢死队问题(循环表)
- C语言实验——for循环打印图形(循环结构)(sdut oj)
- C语言实验——判断素数(循环结构)(sdut oj)
- C语言实验——计算1到n的和(循环结构)(sdut oj)
- C语言实验——求阶乘(循环结构) (sdut oj)
- sdut 2617 矩阵(sdut第五届校赛)
- 求值(SDUT 1256)
- [2710]1-4 输出菱形 (for循环)SDUT
- Python 文本挖掘:使用机器学习方法进行情感分析(一、特征提取和选择)
- Swap Nodes in Pairs
- Swift语言官方文档翻译(1)
- Copy 数据到ppt 中保持对齐
- IO小练习 ---- 文件拷贝
- 循环节(SDUT 2747)
- 使用egypt+graphviz分析ffplay的函数调用关系图
- 打开Office2007报错
- scala -Collection
- 利用VideoView播放视频
- “假死战术”在程序中的实际运用及效果
- MySQL日期数据类型、时间类型使用总结
- 性能调优之ASP.NET
- POJ 1006 Biorhythms (数论-中国剩余定理)