记忆化搜索dp(uva10739)
来源:互联网 发布:什么牌网络机顶盒好 编辑:程序博客网 时间:2024/05/16 07:35
题意:给定一个字符串,可以进行添加、删除、替换字符使其成为回文串,问最少的操作次数是多少
思路:记忆话搜索,dp[i][j]表示区间(i,j)变成回文串所需要的最少次数
如果str[i]==str[j],则dp[i][j]=dp[i+1][j-1],否则dp[i][j]=min{dp[i][j-1](在i端插入),dp[i+1][j](在j端插入),dp[i+1][j-1](替换)}
插入和删除操作时一样的
#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<vector>#include<cmath>#include<queue>#include<stack>#include<map>#include<set>#include<algorithm>using namespace std;const int maxn=1010;int N;char s[maxn];int dp[maxn][maxn];int DP(int l,int r){ if(dp[l][r]!=-1)return dp[l][r]; if(l>=r)return 0; int ans=0; if(s[l]==s[r])ans=DP(l+1,r-1); else ans=min(min(DP(l,r-1),DP(l+1,r)),DP(l+1,r-1))+1; return dp[l][r]=ans;}int main(){ int T,cas=1; scanf("%d",&T); while(T--) { scanf("%s",s); memset(dp,-1,sizeof(dp)); int len=strlen(s); printf("Case %d: %d\n",cas++,DP(0,len-1)); } return 0;}
0 0
- 记忆化搜索dp(uva10739)
- 记忆化搜索(搜索+dp思想)
- dp记忆化搜索
- 记忆化搜索,dp
- 记忆化搜索DP
- poj 1088 (dp记忆化搜索)
- poj 1579(记忆化搜索)DP
- 滑雪(poj1088,DP+记忆化搜索)
- Lightoj 1036 DP(记忆化搜索)
- Lightoj 1084 记忆化搜索(DP)
- hdu1978(记忆化搜索/DP)
- loj 1044(dp+记忆化搜索)
- hdu3555(数位dp记忆化搜索)
- codeforces (数位dp 记忆化搜索)
- NUBT1475 数位dp(记忆化搜索)
- POJ 3616(dp/记忆化搜索)
- hdu3779Railroad(记忆化搜索|dp)
- poj 1191 dp(记忆化搜索)
- Foundation框架---“集合类”
- Python基础--目录
- 命令模式
- android不通过编译修改build.prop方法
- androd 事件分发机制的初步理解
- 记忆化搜索dp(uva10739)
- 非法字符: \65279 的解决办法
- TF-IDF与余弦相似性的应用(三):自动摘要
- 12 shell文件的操作
- 加密勒索软件:给钱也不一定能取回资料
- 完美的 App测试方案
- 13 子Shell与进程处理
- php中单引号和双引号的区别
- leetcode Remove Element