UVA11404[Palindromic Subsequence] 动态规划
来源:互联网 发布:网络工程师软件 编辑:程序博客网 时间:2024/06/07 15:24
题目链接
题目大意:给定一个由小写字母组成的字符串,删除其中0个或多个字符,使得剩下的字母(顺序不变)组成一个尽量长的回文串。如果有多解,输出字典序最小的解。
解题报告:dp[i][j]表示子串i~j变为回文串最少删除字母个数。
s[i]==s[j] dp[i][j]=dp[i+1][j-1]
dp[i][j]=min(dp[i+1][j],dp[i][j-1])+1
再顺带求出字典序最小解。
#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int maxn=1010;int dp[maxn][maxn];string path[maxn][maxn];char ch[maxn];int main(){ while( scanf("%s", ch+1 )==1 ){ int n=strlen(ch+1); for ( int i=n; i>=1; i-- ) for ( int j=i; j<=n; j++ ){ if( ch[i]==ch[j] ){ if( i==j ){ dp[i][j]=0; path[i][j]=ch[i]; }else{ dp[i][j]=dp[i+1][j-1]; path[i][j]=ch[i]+path[i+1][j-1]+ch[j]; } }else { if( dp[i+1][j]>dp[i][j-1] ){ dp[i][j]=dp[i][j-1]+1; path[i][j]=path[i][j-1]; } else if( dp[i+1][j]<dp[i][j-1] ){ dp[i][j]=dp[i+1][j]+1; path[i][j]=path[i+1][j]; } else { dp[i][j]=dp[i+1][j]+1; path[i][j]=min(path[i+1][j], path[i][j-1]); } } } cout<<path[1][n]<<endl; } return 0;}
阅读全文
0 0
- UVA11404 - Palindromic Subsequence - 动态规划
- UVA11404[Palindromic Subsequence] 动态规划
- Palindromic Subsequence UVA11404
- UVA11404-----Palindromic Subsequence-----DP之LCS
- UVa:11404 Palindromic Subsequence(动态规划)
- 十二周动态规划 Longest Palindromic Subsequence
- 动态规划-516. Longest Palindromic Subsequence
- LeetCode----516. Longest Palindromic Subsequence(M) 动态规划
- 回文子序列 Palindromic Subsequence UVA 11404 动态规划 最长公共子序列
- 【动态规划】Leetcode编程题解:516. Longest Palindromic Subsequence Add to List
- 动态规划——516. Longest Palindromic Subsequence[Medium]
- leetcode 516. Longest Palindromic Subsequence 最长回文子序列 + DP动态规划
- 动态规划 Common Subsequence
- UNIMODAL PALINDROMIC DECOMPOSITIONS 动态规划
- 动态规划-647. Palindromic Substrings
- 647.Palindromic Substrings(动态规划)
- 【动态规划】poj1458 common subsequence
- POJ1458 Common Subsequence 动态规划
- AngularJS 服务(Service)
- 17年ICPC新疆网络赛F Islands(强连通 缩点)
- 1022. D进制的A+B (20)
- 悦读---《读者》(3)
- 9-9NOIP模拟赛总结
- UVA11404[Palindromic Subsequence] 动态规划
- 前端之梦
- 京东成都研究院面试记录
- codeforces 630A Again Twenty Five!
- 几何板子2
- 轻院1069: 向Z同学学习
- 一起来看MyBatis(三)
- MapReduce I
- Node.js 回调函数(阻塞/非阻塞)学习笔记