hdu2476 区间dp
//Accepted 300 KB 31 ms //区间dp 思路完全网上看的 #include <cstdio> #include <cstring> #include <iostream> using namespace std; ; int dp[imax_n][imax_n]; char s1[imax_n],s2[imax_n]; int ans[imax_n]; int n; int min(int a,int b) { return a<b?a:b; } void Dp() { memset(dp,,sizeof(dp)); ;i<=n;i++) dp[i][i]=; dp[][]=; ;i<n;i++) { ]==s2[i]) dp[i][i+]=; else dp[i][i+]=; } ;l<=n;l++) { ;i<=n;i++) { ; if (j>n) break; dp[i][j]=dp[i+][j]+; ;k<=j;k++) ]==s2[k-]) dp[i][j]=min(dp[i][j],dp[i+][k]+dp[k+][j]); } } } int main() { while (scanf("%s%s",s1,s2)!=EOF) { n=strlen(s1); Dp(); ans[]=; ;i<=n;i++) { ans[i]=dp[][i]; ]==s2[i-]) ans[i]=ans[i-]; ;k<i;k++) ans[i]=min(ans[i],ans[k]+dp[k+][i]); } printf("%d\n",ans[n]); } ; }
//Accepted 300 KB 15 ms #include <cstdio> #include <cstring> #include <iostream> using namespace std; ; int dp[imax_n][imax_n]; char s1[imax_n],s2[imax_n]; int ans[imax_n]; int n; int min(int a,int b) { return a<b?a:b; } void Dp() { //memset(dp,0,sizeof(dp)); ;i<=n;i++) dp[i][i]=; dp[][]=; ;i<n;i++) { ]==s2[i]) dp[i][i+]=; else dp[i][i+]=; } ;l<=n;l++) { ;i<=n;i++) { ; if (j>n) break; ]==s2[j-]) dp[i][j]=dp[i+][j]; else dp[i][j]=dp[i+][j]+; ;k<j;k++) ]==s2[k-]) dp[i][j]=min(dp[i][j],dp[i+][k]+dp[k+][j]); } } } int main() { while (scanf("%s%s",s1,s2)!=EOF) { n=strlen(s1); Dp(); ans[]=; ;i<=n;i++) { ans[i]=dp[][i]; ]==s2[i-]) ans[i]=ans[i-]; ;k<i;k++) ans[i]=min(ans[i],ans[k]+dp[k+][i]); } printf("%d\n",ans[n]); } ; }
hdu2476 区间dp的更多相关文章
- hdu2476(区间dp+dp)
String painter Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- hdu2476 String painter(区间dp)
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=2476 Problem Description There are two strings ...
- HDU2476 String painter——区间DP
题意:要把a串变成b串,每操作一次,可以使a串的[l,r]区间变为相同的一个字符.问把a变成b最少操作几次. 这题写法明显是区间dp ,关键是处理的方法. dp[l][r]表示b串的l~r区段至少需要 ...
- 区间dp总结篇
前言:这两天没有写什么题目,把前两周做的有些意思的背包题和最长递增.公共子序列写了个总结.反过去写总结,总能让自己有一番收获......就区间dp来说,一开始我完全不明白它是怎么应用的,甚至于看解题报 ...
- 区间dp(入门题)
区间dp:顾名思义就是在区间上进行动态规划,通过合并小区间求解一段区间上的最优解. 常见模板: for(int len=1;len<n;len++){//区间长度 for(int be=1;be ...
- 区间dp的感悟
学区间dp似乎也很久了...对区间dp的通用模型都了解了一些 但是做题还是很坑 上了一点难度的题基本想不出什么思路.. 目前的做题方式就是看题 想一会发现自己不会做 看题解 好巧妙啊 理解后写一发.. ...
- CQOI2007 涂色 paint (区间dp)
听说这道题是当年省选题 于是兴致勃勃拿来做了做 至于如何想到思路... 事实上没想象中那么简单... 脑阔挺疼的... (一开始都没看出来是区间dp) 想到可以区间dp,然后就似乎没啥大问题 枚举区间 ...
- 【BZOJ-4380】Myjnie 区间DP
4380: [POI2015]Myjnie Time Limit: 40 Sec Memory Limit: 256 MBSec Special JudgeSubmit: 162 Solved: ...
- 【POJ-1390】Blocks 区间DP
Blocks Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 5252 Accepted: 2165 Descriptio ...
随机推荐
- WebDriver 页面等待
selenium2.4.0版本提供了页面等待处理. 显示等待元素可见: protected void WaitElementVisible(By by,int timeOutInSeconds, lo ...
- 数据库中间件mycat简单入门
当在项目中mysql数据库成为瓶颈的时候,我们一般会使用主从复制,分库分表的方式来提高数据库的响应速度,比如mysql主从复制,在没有数据库中间件的情况下,我们只能由开发工程师在程序中控制,这对于一个 ...
- Android Snackbar
使用Snackbar我们可以在屏幕底部(大多时候)快速弹出消息,它和Toast非常相似,但是它更灵活一些. 当它显示一段时间后或用户与屏幕交互时它会自动消失. 可以自定义action-可选操作. sw ...
- 弹出框--self
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- android AutoCompleteTextView 自定义BaseAdapter
最近项目中需要做搜索功能,实现类似 Google.Baidu 搜索的 下拉提示效果.Android为我们提供了 AutoCompleteTextView 控件来完成此功能. 网上好多例子都是简单使用 ...
- jquery学习笔记1
(1) jQuery的Id选择器: $("#btnShow") (2) 事件绑定函数 bind() $("#btnAdd").bind("click& ...
- poj----(1470)Closest Common Ancestors(LCA)
Closest Common Ancestors Time Limit: 2000MS Memory Limit: 10000K Total Submissions: 15446 Accept ...
- 初学java之异常类
//异常类 package st; public class example_1 { public static void main(String args[]) { int n=0,m=0,t=10 ...
- content.boundingRectWithSize计算出来的高度不准
计算出来的高度会少一行的高度,最后一行会显示不全.减掉padding会解决这个问题. let padding = self.reviewText.textContainer.lineFragm ...
- Android: Intent实现活动之间的交互
Intent的作用:是Android中各个组件直接交互的一种重要方式,且利用Intent可以启动Activity.Service以及Broadcast Receiver. Intent的创建:显示和隐 ...