题目链接:uva 12012 - Detection of Extraterrestrial

题目大意:给定一个字符串,问说子串中,循环次数为k个最大长度为多少。

解题思路:枚举起点位置,然后用KMP处理。

#include <cstdio>
#include <cstring>
#include <algorithm>using namespace std;
const int maxn = 1005;int jump[maxn], c[maxn];void get_jump (char* s, int n) {int p = 0;jump[0] = jump[1] = 0;for (int i = 2; i <= n; i++) {while (p && s[p+1] != s[i])p = jump[p];if (s[p+1] == s[i])p++;jump[i] = p;}
}int main () {int cas;char s[maxn];scanf("%d", &cas);for (int kcas = 1; kcas <= cas; kcas++) {scanf("%s", s+1);int n = strlen(s+1);memset(c, 0, sizeof(c));for (int t = 0; t < n; t++) {int m = n - t;get_jump(s + t, m);for (int j = 1; j <= m; j++) {int p = j;while (p) {p = jump[p];if (j % (j - p) == 0) {int k = j / (j - p);c[k] = max(c[k], j);}}}}printf("Case #%d:", kcas);for (int i = 1; i <= n; i++)printf(" %d", c[i]);printf("\n");}return 0;
}

题目链接:uva 12012 - Detection of Extraterrestrial

题目大意:给定一个字符串,问说子串中,循环次数为k个最大长度为多少。

解题思路:枚举起点位置,然后用KMP处理。

uva 12012 - Detection of Extraterrestrial(KMP)相关推荐

  1. UVa 12012 - Detection of Extraterrestrial(hash)

    思路:基于后缀形式的哈希.枚举1-n长度来计算哈希是否相同,在计算时,同时更新拼接数对应的最长子串长度.具体代码参考: OJ/UVa/112012 Detection of Extraterrestr ...

  2. Detection of Extraterrestrial KMP匹配 重复k次子串 好题

    一开始以为这道题是后缀数组,想了好久没想明白怎么做,后来发现暴力枚举起点,进行KMP就好了. 枚举起点以后,构建fail数组. 遍历fail数组,如果串s[l,r]是由串s[s,t]重复k次得到的,那 ...

  3. UVA 11557 - Code Theft (KMP + HASH)

    UVA 11557 - Code Theft 题目链接 题意:给定一些代码文本.然后在给定一个现有文本,找出这个现有文本和前面代码文本,反复连续行最多的这些文本 思路:把每一行hash成一个值.然后对 ...

  4. 矩阵hash + KMP - UVA 12886 The Big Painting

    The Big Painting Problem's Link:  http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=88791 ...

  5. UVa11019 Matrix Matcher(hash+kmp)

    二维字符串匹配问题,将二维模式x*y转换成1*y列的哈希数组.同时将二维文本串n*m转换成(n-x+1)*m列的哈希矩阵,前x行先计算哈希,后面的通过滚动计算哈希值.然后遍历(n-x+1)次,通过km ...

  6. UVa12467 Secret Word(kmp)

    先将s反转得到字符串t,再通过kmp求得t的子串,使得访子串是s的最长前缀 代码参考: OJ/UVa/12467 Secret Word at master · wuli2496/OJ · GitHu ...

  7. UVa11452 Dancing the Cheeky-Cheeky(kmp)

    使用kmp算法求得字符串的周期,然后根据长度以及周期找到字符串输出位置 代码参考: OJ/UVa/11452 Dancing the Cheeky-Cheeky at master · wuli249 ...

  8. 前缀函数及kmp算法

    1.字符串基础 1.1 字符集 一个字符集是一个建立了全序关系的集合,也就是说中的任意两个不两只的元素和都可以比较大小,要么,要么.字符集中的元素称为字符. 1.2 字符串 一个字符串S是将n个字符顺 ...

  9. Uva 1630 折叠串

    题目链接:https://uva.onlinejudge.org/external/16/1630.pdf 题意:折叠串,给一个字符串,相同部分可以折叠,折叠可以嵌套.求最短长度的一种折叠方法.括号和 ...

最新文章

  1. linux下安装MySQL出错file /usr/share/mysql/charsets/latin2.xml from install of MySQL-......
  2. 浏览器 user-agent 字符串的故事
  3. 11尺寸长宽 iphone_弱电工程LED显示屏尺寸规格及计算方法
  4. python爬虫的时候要用的url修改方法总结
  5. python调用r语言函数_Python 中使用R语言
  6. 计算机学习路线及java图书参考
  7. Vue + Echarts 正态分布图,在线计算标准差,生成正态分布曲线
  8. HttpStatus详解
  9. 如何选购电风扇,一本电风扇选购攻略都在这里!
  10. 基于微信小程序的资产管理平台的设计与实现
  11. java中import是什么意思_java中import关键字是什么意思
  12. 关于Java平台无关性你该知道这些
  13. 代码:吃货联盟订餐系统
  14. vue -V 执行失败 檔案名稱、目錄名稱或磁碟區標籤語法錯誤。
  15. Linux内核 LCD 驱动程序框架
  16. 新手如何学好C语言?
  17. IDEA光标变成白色粗条的问题解决
  18. 基于神经网络rnn模型的心脏病预测案例详细教程
  19. 数据科学家定位和职业规划
  20. One Piece 海贼王动漫壁纸 Python 爬取!

热门文章

  1. 一个追风筝的人,追寻着什么
  2. Matlab之绘制参考线函数refline和refcurve
  3. 【C++探索之旅】第一部分第八课:传值引用,文件源头
  4. SML-Rangelab
  5. 【技巧总结】位运算装逼指南
  6. 十六进制文件读取并转换成二进制文件
  7. ubuntu14.04+cuda7.0+opencv2.4.9
  8. java data jpa_java中Spring data jpa通过Predicate查询时间段
  9. Luogu P1491 集合位置 (spfa--次短路)
  10. 【P9】Point to the Expression:Solving Algebraic Word Problems using the Expression-Pointer Transformer