UVA 11888 - Abnormal 89's(Manachar)
来源:互联网 发布:扫描系统漏洞软件 编辑:程序博客网 时间:2024/05/19 07:42
UVA 11888 - Abnormal 89's
题目链接
题意:给定一个字符串,判断类型,一共三种,两个回文拼接成的,一个回文,其它
思路:利用Manachar处理出每个位置的最长回文,然后扫描一遍去判断即可
代码:
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N = 200005;int t, p[N * 2], n, len;char str[N], s[N * 2];void manachar() { len = 2; s[0] = '@'; s[1] = '#'; for (int i = 0; i < n; i++) {s[len++] = str[i];s[len++] = '#'; } s[len] = '\0'; int mx = 0, id; for (int i = 1; i < len; i++) {if (mx > i) p[i] = min(p[2 * id - i], mx - i);else p[i] = 1;while (s[i + p[i]] == s[i - p[i]]) p[i]++;if (i + p[i] > mx) { id = i; mx = i + p[i];} }}int judge() { int need = 0; for (int i = 2; i < len - 1; i++) {if ((p[i] - 1) / 2 == need) { int l = i + p[i] - 1; int r = len - 1; int mid = (l + r) / 2; int lneed = need * 2; if (s[i] != '#') lneed++; int rneed = n - lneed; if (rneed && rneed == p[mid] - 1) return 0;}if (s[i] != '#') need++; } if (p[len / 2] - 1 == n) return 1; return 2;}int main() { scanf("%d", &t); while (t--) {scanf("%s", str);n = strlen(str);manachar();if (judge() == 0) printf("alindrome\n");else if (judge() == 1) printf("palindrome\n");else printf("simple\n"); } return 0;}
1 0
- UVA 11888 - Abnormal 89's(Manachar)
- UVA 11888 Abnormal 89's
- Uva 11888 - Abnormal 89's
- uva 11888 - Abnormal 89's(KMP)
- uva11888 - Abnormal 89's Manacher回文子串
- hdu 5371 Hotaru's problem(manachar)
- hdu5371 Hotaru's problem manachar回文串算法+枚举
- 【codeforces】741E. Arpa’s abnormal DNA and Mehrdad’s deep interest【后缀数组+分块】
- [字符串HASH && 阈值]Codeforces 741E.Arpa’s abnormal DNA and Mehrdad’s deep interest
- manachar 模板
- manachar模板
- Manachar算法
- hdu 5371 manachar
- manachar算法学习笔记
- HDU 3294 (manachar)
- HDU 4513 (manachar)
- [BZOJ3790]神奇项链-manachar
- 贴个manachar模板
- PE文件
- AMQP协议二
- uva 11292 The Dragon of Loowater
- current_session_context_class
- 机器学习中的数学(1)-回归(regression)、梯度下降(gradient descent)
- UVA 11888 - Abnormal 89's(Manachar)
- ZooKeeper 节点类型
- TCO14 2C L2: CliqueGraph,graph theory, clique
- 各种内部排序方法的比较和选择
- 为什么Hadoop是分布式计算的未来
- HDOJ 题目2553 N皇后问题(dfs)
- [Python]threading local 线程局部变量小测试
- 使用直流稳压电源有哪些注意事项
- 面向对象Object.equals.instanceof解析java