uva10298 Power Strings
2016-05-22 15:50
183 查看
这题就是求一个字符串的最小循环节长度,然后ans = len / k;
if (len % (len - nxt[len]) == 0) ans = len / (len - nxt[len]);
else ans = 1;
if (len % (len - nxt[len]) == 0) ans = len / (len - nxt[len]);
else ans = 1;
const int maxn = 1e6 + 10; char s[maxn]; int nxt[maxn]; void get_nxt() { int i = 0, j = -1; nxt[0] = -1; int len = strlen(s); while(i < len) { while(j != -1 && s[i] != s[j]) j = nxt[j]; nxt[++i] = ++j; } } int main(int argc, const char * argv[]) { // freopen("in.txt","r",stdin); // freopen("out.txt","w",stdout); // clock_t _ = clock(); while(scanf("%s", s) != EOF) { if (s[0] == '.') break; get_nxt(); int len = strlen(s); if (len % (len - nxt[len]) == 0) cout << len / (len - nxt[len]) << endl; else cout << 1 << endl; } // printf("\nTime cost: %.2fs\n", 1.0 * (clock() - _) / CLOCKS_PER_SEC); return 0; }
相关文章推荐
- 使用js技术使字体闪烁
- 数据结构笔记整理第5章:树和二叉树
- iOS开发UI篇—UIWindow简单介绍
- KMP算法实现才 c++
- item31让函数根据一个以上的对象类型来决定如何虚化
- java静态内部类(重点
- 入驻第一天
- 慕课R语言之数据可视化学习笔记——3.3基本绘图系统实战
- JavaScript的函数作用域
- Wooyun最新确认漏洞爬虫V0.02
- Linux操作系统基础解析之(四)——Linux基本命令剖析(2)
- HDU1518:Square(DFS)
- 一步步学spark之一scala函数1.3
- Intent MIME 打开各种类型的文件
- Linux下find命令详解
- python 中的split()函数和os.path.split()函数
- vs2010 mfc c++ struct
- 按钮控件编程实例
- 人工智能之机器学习常见算法
- 工厂方法模式