UVa 11475 - Extend to Palindrome
来源:互联网 发布:第三方网络支付平台 编辑:程序博客网 时间:2024/06/04 18:32
題目:給你一個字符串,在後面拼接一部分使得它變成回文串,使得串最短,輸出這個回文串。
分析:KMP,dp。這裡利用KMP算法將串和它的轉置匹配,看結束時匹配的長度即可。
因為串比較長,使用KMP比較合適,KMP原理請參照AC自動機總結。
說明:╮(╯▽╰)╭。
#include <string.h>#include <stdio.h>#include <stdlib.h>char strA[100001];char strB[100001];int next[100001];void getnext(char T[]) { next[0] = -1; int i = 0, j = -1; while (T[i]) { if (j == -1 || T[i] == T[j]) {++ i; ++ j;if (T[i] != T[j])next[i] = j; else next[i] = next[j]; }else j = next[j]; }} int KMP(char S[], char T[]){int i = 0, j = 0;while (S[i]) {if (j == -1 || S[i] == T[j]) {i ++; j ++;}else j = next[j];}return j;}int main(){while (~scanf("%s",strA)) {int len = strlen(strA);for (int i = 0; i < len; ++ i)strB[i] = strA[len-1-i];strB[len] = 0;getnext(strB);printf("%s%s\n",strA,&strB[KMP(strA, strB)]);} return 0;}
0 0
- UVa 11475 - Extend to Palindrome
- Extend to Palindrome - UVa 11475 哈希
- UVa 11475-Extend to Palindrome JAVA
- UVA 11475 - Extend to Palindrome(KMP)
- uva 11475 - Extend to Palindrome(KMP)
- UVA 11475 Extend to Palindrome KMP
- UVA 11475 Extend to Palindrome hash
- Extend to Palindrome - UVa 11475 Manacher算法
- UVA - 11475 Extend to Palindrome manacher+贪心
- UVA 11475 Extend to Palindrome KMP,后缀数组
- Uva 11475 : Extend to Palindrome(Hash或KMP)
- UVA 11475 Extend to Palindrome 后缀数组 LCP
- UVA 11475 Extend to Palindrome(字符hash)
- UVA 11475 Extend to Palindrome (kmp || manacher || 后缀数组)
- UVA-11475-Extend to Palindrome((扩展)kmp)
- UVA11475--Extend to Palindrome
- UVa11475 - Extend to Palindrome
- uva11475 - Extend to Palindrome KMP
- 论文提要“Delving Deep into Rectifiers”
- Android多线程编程小结
- 禁止ScrollView在子控件的布局改变时自动滚动的的方法
- 我是如何惩罚骗子的
- Android GridView添加Header和Footer组件
- UVa 11475 - Extend to Palindrome
- LayoutInflater 加载布局文件失败原因
- 【MFC-4】LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- OBJ 文件格式
- Python学习笔记
- catalina.bat
- Windows下安装Object C开发环境,及Hello Word
- NYOJ 111 分数加减法
- Windows环境下Android Studio v1.0安装教程