Palindromic Subsequence UVA
来源:互联网 发布:c语言成绩管理系统 编辑:程序博客网 时间:2024/05/21 09:00
感觉转为LCS 其实就可以在弄一个数组,然后按照LCS的形式,,
但是错了。。
而且自己不会表示输出的答案序列。。
看了别人的。
他用的循环不太懂。。大概就是按照判断会问的思路
然后又看了别人的,感觉挺好http://blog.csdn.net/l123012013048/article/details/44493921
至少和LCS的代码像,注意答案是前半部分的重复
#include<bits/stdc++.h>using namespace std;#define mem(a,b) memset(a,b,sizeof(a));#define sf scanf#define pf printf#define bug1 printf("bug1\n");#define N 1005#define M 10#define INF 1e9#define LL long long#define inf 0x3f3f3f3fchar s1[N],s2[N];struct Node { string ans; int len; bool operator >(const Node&a){ if(this->len!=a.len)return this->len>a.len; return this->ans<a.ans; }}dp[N][N];char ans[N][N];int main(){ while(~sf("%s",s1+1)){ mem(ans,0); int len=strlen(s1+1); for(int i=1;i<=len;++i)s2[len-i+1]=s1[i]; for(int i=1;i<=len;++i){ dp[0][i].len=dp[i][0].len=0; dp[0][i].ans=dp[i][0].ans=""; } for(int i=1;i<=len;++i){ for(int j=1;j<=len;++j){ if(s1[i]==s2[j]){ dp[i][j].ans=dp[i-1][j-1].ans+s1[i]; dp[i][j].len=dp[i-1][j-1].len+1; } else { if(dp[i-1][j].len>dp[i][j-1].len){ dp[i][j].ans=dp[i-1][j].ans; dp[i][j].len=dp[i-1][j].len; } else if(dp[i-1][j].len<dp[i][j-1].len){ dp[i][j].ans=dp[i][j-1].ans; dp[i][j].len=dp[i][j-1].len; } else{ dp[i][j].ans=min(dp[i-1][j].ans,dp[i][j-1].ans); dp[i][j].len=dp[i][j-1].len; } } } } int Len = dp[len][len].len; string str = dp[len][len].ans; if(Len & 1) { int mid = Len / 2; for(int i = 0; i < mid; i++) cout << str[i]; for(int i = mid; i >= 0; i--) cout << str[i]; } else{ int mid = Len / 2; for(int i = 0; i < mid; i++) cout << str[i]; for(int i = mid-1; i >= 0; i--) cout << str[i]; } puts(""); }}
0 0
- 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
- Palindromic Subsequence UVA
- UVA 11404 - Palindromic Subsequence LCS
- UVA 11404 - Palindromic Subsequence(dp)
- uva 11404 - Palindromic Subsequence(dp)
- Palindromic Subsequence - UVa 11404 dp
- UVA - 11404 Palindromic Subsequence LCS
- UVA 11404Palindromic Subsequence 【LCS】
- UVA 11404 Palindromic Subsequence LCS
- UVa:11404 Palindromic Subsequence(动态规划)
- uva 11404 Palindromic Subsequence lcs 路径输出
- UVA 11404-Palindromic Subsequence(DP)
- SQL数据库常用命令
- 文章标题
- RecyclerView定位到指定位置
- Python实用第三方库集合-网络篇
- AOP之Proxy技术实现AOP功能
- Palindromic Subsequence UVA
- URAL
- python常用文件操作
- Appium在Mac环境的搭建
- 后台判断参数是否是某个类型
- 如何理解反向传播算法(backpropagation)
- C++作业五
- Redis学习系列——Redis基本教程
- Unity基础.005了解Unity中的游戏美术资源及常用操作