uva 11404 Palindromic Subsequence lcs 路径输出
来源:互联网 发布:php大马 编辑:程序博客网 时间:2024/04/28 05:18
Palindromic Subsequence
A Subsequence is a sequence obtained by deleting zero or more characters in a string. A Palindrome is a string which when read from left to right, reads same as when read from right to left. Given a string, find the longest palindromic subsequence. If there are many answers to it, print the one that comes lexicographically earliest.
Constraints
- Maximum length of string is 1000.
- Each string has characters `a' to `z' only.
Input
Input consists of several strings, each in a separate line. Input is terminated by EOF.
Output
For each line in the input, print the output in a single line.
Sample Input
aabbaabbcomputerabzlasamhita
Sample Output
aabbaacabaaha
求最长回文子串
代码:
#include<cstdio>#include<cstring>#include<algorithm>#include<string>#include<iostream>using namespace std;const int MAXN=1111;int dp[MAXN][MAXN];char str1[MAXN],str2[MAXN];string ans[MAXN][MAXN];int main(){ int l,i,j; while(scanf("%s",str1+1)!=EOF) { l=strlen(str1+1); for(i=1;i<=l;i++) { str2[l+1-i]=str1[i]; } memset(dp,0,sizeof(dp)); for(i=1;i<=l;i++) { for(j=1;j<=l;j++) { if(str1[i]==str2[j]) { ans[i][j]=ans[i-1][j-1]+str1[i]; dp[i][j]=dp[i-1][j-1]+1; } else { if(dp[i-1][j]>dp[i][j-1]) { dp[i][j]=dp[i-1][j]; ans[i][j]=ans[i-1][j]; } else if(dp[i-1][j]<dp[i][j-1]) { dp[i][j]=dp[i][j-1]; ans[i][j]=ans[i][j-1]; } else { dp[i][j]=dp[i-1][j]; if(ans[i-1][j]>=ans[i][j-1]) { ans[i][j]=ans[i][j-1]; } else { ans[i][j]=ans[i-1][j]; } } } } } string s3=ans[l][l]; // cout<<s3<<endl; int n=dp[l][l]; if(n%2) { for(i=0;i<(n-1)/2;i++) cout<<s3[i]; for(i=(n-1)/2;i>=0;i--) cout<<s3[i]; } else { for(i=0;i<n/2;i++) cout<<s3[i]; for(i=n/2-1;i>=0;i--) cout<<s3[i]; } cout<<endl; } return 0;}
0 0
- uva 11404 Palindromic Subsequence lcs 路径输出
- UVA 11404 - Palindromic Subsequence LCS
- UVA - 11404 Palindromic Subsequence LCS
- UVA 11404Palindromic Subsequence 【LCS】
- UVA 11404 Palindromic Subsequence LCS
- UVa 11404 - Palindromic Subsequence DP LCS---------无限WA
- uva 11404 Palindromic Subsequence(LCS回文串,最小字典序)
- uva 11404 Palindromic Subsequence(LCS回文串,最小字典序)
- UVA 11404 Palindromic Subsequence(LCS+最小字典序)
- uva 11404 Palindromic Subsequence(LCS 记录中间过程)@
- UVA 11404 Palindromic Subsequence
- UVA 11404 Palindromic Subsequence
- UVA 11404 Palindromic Subsequence
- UVA 11404 Palindromic Subsequence
- uva 11404 Palindromic Subsequence
- UVA 11404 Palindromic Subsequence
- UVa 11404 Palindromic Subsequence
- uva 11404 Palindromic Subsequence (dp+字典序最小路径)
- Windows 7系统安装MySQL5.5.21图解
- C和C++格式化输入输出(复习)
- CentOS7 install ftp
- android IP拨号器
- UVa 12403 - Save Setu
- uva 11404 Palindromic Subsequence lcs 路径输出
- 消息队列简介及应用场景相关
- xv6阅读报告一(中间图片懒得贴了==)
- 没几把刷子,老板请你干嘛?句句震撼,不看遗憾终生
- 黑马程序员——交通灯管理系统的实现
- Eclipse快捷键
- 黑马程序员——高新技术(反射)
- 如何在三个月内获得三年的工作经验
- 【白话经典算法系列之五】 归并排序的实现