![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
回文
文章平均质量分 50
yan_____
不跟你介绍
展开
-
uva 11584 把字符串分成最少的回文段
#include #include #define maxn 1010 #define INF 1<<30 char str[maxn]; int dp[maxn]; char vis[maxn][maxn]; void init() { int i; memset(vis,-1,sizeof(vis)); for(i=1;i<=strlen(str+1);i++)原创 2013-04-07 20:19:42 · 826 阅读 · 0 评论 -
uva 11404 LCS打印字典序最小路径
#include #include #include #include #define N 1020 using namespace std; int dp[N][N]; char str[N][N][N]; string st[N][N]; char a[N],b[N]; int maxn; string jieguo; int main() { int i,j,k,l; while(~sc原创 2013-04-13 19:52:11 · 734 阅读 · 0 评论 -
uva 11151 最长回文子串
uva 11151 空串输出0 #include #include #define N 1010 int dp[N][N]; char a[N]; int max(int a,int b) { return a>b?a:b; } int main() { int i,j,k,le,l,max; scanf("%d",&le); getchar();原创 2013-05-05 12:03:36 · 925 阅读 · 0 评论 -
hdu 1513 Palindrome 回文 LCS 滚动数组
求最少补多少个字符使所给字符串变成回文,直接dp,dp[i][j]代表从i到j的字串中最少补的字符。1、如果a[i]==a[j],dp[i][j]=dp[i+1][j-1],不用加新字符的情况;2、如果a[i]!=a[j],dp[i][j]=min(dp[i+1][j],dp[i][j-1])+1,在中间字符串的基础上再补一个字符;n的范围是5000二维会超内存,这里注意每次dp[i][j]的更新原创 2013-01-28 12:02:18 · 1545 阅读 · 0 评论 -
uva 10453 补全回文并打印结果
uva 10453 #include #include #include #include #define N 1010 using namespace std; int dp[N][N]; char a[N]; string print(int l,int r) { string s=""; if(l==r) { s+=a[l];原创 2013-05-05 15:04:01 · 883 阅读 · 0 评论 -
uva 11151 增减改求变成回文的最小步数
uva 11151 #include #include #define N 1010 int dp[N][N],n; char a[N]; int min(int a,int b,int c) { if(a<=b&&a<=c) return a; if(b<=a&&b<=c) return b; if(c<=a&&c<=b) return c; } int main()原创 2013-05-07 16:21:56 · 821 阅读 · 0 评论