uva 11151 Longest Palindrome(LCS)
来源:互联网 发布:蜀国只有一个州 知乎 编辑:程序博客网 时间:2024/05/29 19:24
题目连接:11151 - Longest Palindrome
题目大意:给出一个字符串,计算这个字符串的最长回文子串, 不同的是,它的子串可以不连续。
解题思路:刚开始把这道题当成普通的回文串来做了, 用了manachar算法, 让后一直WA, 然后才发现原来子串可以不连续, 但是其实就是求当前这个字符串和其逆序的最长公共子序列。
#include <stdio.h>#include <string.h>const int N = 1005;int max(int a, int b) { return a > b ? a : b; }char a[N], b[N];int dp[N][N], len;int solve() { memset(dp, 0, sizeof(dp)); for (int i = 1; i <= len; i++) {for (int j = 1; j <= len; j++) { if (a[i - 1] == b[j - 1])dp[i][j] = dp[i - 1][j - 1] + 1; elsedp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);} } return dp[len][len];}int main() { int cas; scanf("%d%*c", &cas); while (cas--) {gets(a);len = strlen(a);for (int i = 0; i < len; i++) b[len - i - 1] = a[i];printf("%d\n", solve()); }}
- uva 11151 Longest Palindrome(LCS)
- UVA 11151 Longest Palindrome(最长回文子序列 + dp + LCS)
- UVa 11151 Longest Palindrome (另一种最长回文&LCS)
- uva 11151 Longest Palindrome
- UVa 11151 - Longest Palindrome
- UVA 11151 Longest Palindrome
- Uva 11151 - Longest Palindrome
- UVa 11151 - Longest Palindrome
- uva 11151 - Longest Palindrome
- UVa:11151 Longest Palindrome
- UVA - 11151 Longest Palindrome
- uva 11151 - Longest Palindrome
- UVA - 11151 Longest Palindrome
- UVA 11151 - Longest Palindrome
- UVA - 11151 Longest Palindrome
- uva 11151Longest Palindrome
- UVa 11151 - Longest Palindrome(区间dp)
- Longest Palindrome - UVa 11151 dp
- 单片机数码管时钟显示
- kernel32基地址获得学习笔记
- ACM算法题——快捷键的难题
- MySQL存入时间只有年月日
- Python文件基本操作
- uva 11151 Longest Palindrome(LCS)
- 同步和异步的区别
- Android的logcat命令详解
- win7 64位系统搭建android开发环境
- dede分页标签惹的祸:pagebreak中的的方法
- C语言中 sscanf 的用法
- C语言为二维数组动态分配内存的问题
- 编程比较两棵二叉树是否相等
- 旧诗4