回文子串dp,最小字典序的话需要记录一下,注意是string型的,不能只记录一个字符,因为可能出现相等的情况

#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cstring>
#include<string>
#define len first
#define str second
#define MAXN 1005
#define pii pair<int,int>
#define pis pair<int,string>
using namespace std;
pis dp[MAXN][MAXN];
pii g[MAXN][MAXN];
int n;
char s[MAXN];
int b[MAXN][MAXN];
int p[MAXN];
string e;
pis f(int L,int R){
if(b[L][R]){
return dp[L][R];
}
b[L][R]=;
pis& ans=dp[L][R];
if(L>R){
return ans=make_pair(,e);
}
if(L==R){
g[L][R]=make_pair(-,-);
string t(,s[L]);
return ans=make_pair(,t);
}
ans.len=-,ans.str=-;
if(s[L]==s[R]){
ans=f(L+,R-);
string t(,s[L]);t+=ans.str;
ans.len+=,ans.str=t;
if(L+<R)g[L][R]=make_pair(L+,R-);
else g[L][R]=make_pair(-,-);
}
if(ans<f(L,R-)){
ans=f(L,R-);
g[L][R]=make_pair(L,R-);
}
if(ans<f(L+,R)){
ans=f(L+,R);
g[L][R]=make_pair(L+,R);
}
return ans;
}
void print(int L,int R){
if(g[L][R]==make_pair(-,-)){
p[L]=p[R]=;
return;
}
if(g[L][R].first==L+&&g[L][R].second==R-){
p[L]=p[R]=;
}
print(g[L][R].first,g[L][R].second);
}
int main()
{
// freopen("data.in","r",stdin);
// freopen("my.out","w",stdout);
while(~scanf("%s",s+)){
memset(b,,sizeof(b));
memset(p,,sizeof(p));
n=strlen(s+);
for(int i=;i<=n;i++){
s[i]=-s[i];
}
f(,n);
print(,n);
for(int i=;i<=n;i++){
if(p[i])printf("%c",-s[i]);
}
printf("\n");
}
return ;
}

UVA11404:Palindromic Subsequence的更多相关文章

  1. UVA 11404 Palindromic Subsequence[DP LCS 打印]

    UVA - 11404 Palindromic Subsequence 题意:一个字符串,删去0个或多个字符,输出字典序最小且最长的回文字符串 不要求路径区间DP都可以做 然而要字典序最小 倒过来求L ...

  2. [leetcode-516-Longest Palindromic Subsequence]

    Given a string s, find the longest palindromic subsequence's length in s. You may assume that the ma ...

  3. [LeetCode] Longest Palindromic Subsequence 最长回文子序列

    Given a string s, find the longest palindromic subsequence's length in s. You may assume that the ma ...

  4. [Swift]LeetCode516. 最长回文子序列 | Longest Palindromic Subsequence

    Given a string s, find the longest palindromic subsequence's length in s. You may assume that the ma ...

  5. 516. Longest Palindromic Subsequence最长的不连续回文串的长度

    [抄题]: Given a string s, find the longest palindromic subsequence's length in s. You may assume that ...

  6. [Leetcode] Longest Palindromic Subsequence

    Longest Palindromic Subsequence 题解 题目来源:https://leetcode.com/problems/longest-palindromic-subsequenc ...

  7. LPS UVA 11404 Palindromic Subsequence

    题目传送门 题意:求LPS (Longest Palidromic Subsequence) 最长回文子序列.和回文串不同,子序列是可以不连续的. 分析:1. 推荐->还有一种写法是用了LCS的 ...

  8. UVA 11404 Palindromic Subsequence

    Palindromic Subsequence Time Limit: 3000ms Memory Limit: 131072KB This problem will be judged on UVA ...

  9. [LeetCode] 516. Longest Palindromic Subsequence 最长回文子序列

    Given a string s, find the longest palindromic subsequence's length in s. You may assume that the ma ...

随机推荐

  1. 基于协程的Python网络库gevent

    import gevent def test1(): print 12 gevent.sleep(0) print 34 def test2(): print 56 gevent.sleep(0) p ...

  2. 201621123027 Week02-Java基本语法与类库

    Week02-Java基本语法与类库 1.本周学习总结 关键词:基本语法,数据类型,包装类 本周讲了Java的基本数据类型和包装类: 数据类型主要分为八类(byte,short,int,long,do ...

  3. bzoj千题计划274:bzoj3779: 重组病毒

    http://www.lydsy.com/JudgeOnline/problem.php?id=3779 有一棵树,初始每个节点有不同的颜色 操作1:根节点到x的路径上的点 染上一种没有出现过的颜色 ...

  4. UVA 10622 Perfect P-th Powers

    https://vjudge.net/problem/UVA-10622 将n分解质因数,指数的gcd就是答案 如果n是负数,将答案除2至奇数 原理:(a*b)^p=a^p*b^p #include& ...

  5. loadrunner下载资源时步骤下载超时 (120 seconds) 已过期

    下载资源所用时间超过120秒时,就会报出这个错误,解决方法是设置加大超时时间 运行时设置(快捷键F4) Internet 协议--首选项--高级--选项--General--步骤下载超时(秒) 可以把 ...

  6. hp MSA50 5盘RAID5重建为4盘RAID5怎么恢复数据

    [用户单位] XX省电视台[数据恢复故障描述] 一台HP 服务器,挂接一台HP MSA50磁盘阵列,内接5块1TB硬盘,原先结构为RAID5. 使用一段时间后,其中一块硬盘掉线,因RAID5支持一块硬 ...

  7. JavaScript查找数组中最大的值

    // 查找一个数组中最大的数 // 定义一个方法 searchMax function searchMax(arr) { // 声明一个变量MaxNumber假设为数组中最大的值arr[0]; var ...

  8. Python内置函数(56)——locals

     英文文档: locals() Update and return a dictionary representing the current local symbol table. Free var ...

  9. 新概念英语(1-59)Is that all

    Does the lady buy any chalk? A:I want some envelopes, please. B:Do you want the large size or the sm ...

  10. 两款不同应用场景的Wpf分页控件

    简介 今天给大家分享两个Wpf分页控件,本篇博客主要介绍一些实现思路和使用方法,具体实现和应用代码请参考文末的Demo链接 废话不多说,先看一下效果~ (两款控件显示效果是一样的) 实现思路 一款控件 ...