题目大意:给定两个长度相等,只有小写字母组成的字符串s和t,每步可以把s的一个连续子串刷成同一个字母,问至少需要几步才能把s变成t?

大致方法:先用dp求出从空串刷到t的次数,然后在比较s和t求出最后的答案。

# include <iostream>
# include <cstdio>
# include <string>
# include <cstring>
# include <cstdio>
# include <cmath>
# include <algorithm>
# include <map>
# include <vector># define INF 0x3f3f3f3ftypedef long long ll;
using namespace std;char s1[105],s2[105];
int dp[105][105];int main()
{while(scanf("%s%s",s1,s2)!=EOF){int n=strlen(s1);memset(dp,0,sizeof(dp));for(int i=0;i<n;i++)    dp[i][i]=1;for(int len=1;len<n;len++){for(int i=0;i+len<n;i++){int j=i+len;dp[i][j]=dp[i+1][j]+1;for(int k=i+1;k<=j;k++){if(s2[i]==s2[k])    dp[i][j]=min(dp[i][j],dp[i+1][k]+dp[k+1][j]);}}}int res[105];memset(res,INF,sizeof(res));if(s1[0]==s2[0])    res[0]=0;else    res[0]=1;for(int i=1;i<n;i++){if(s1[i]==s2[i]){res[i]=res[i-1];continue;}res[i]=min(res[i],dp[0][i]);for(int j=0;j<i;j++){res[i]=min(res[j]+dp[j+1][i],res[i]);}}printf("%d\n",res[n-1]);}return 0;
}

UVAlive 4394相关推荐

  1. UVALive 4394 String painter

    题目大意:有两个字符串A,B,一次刷可以把A串一段刷成同一个字母,问至少要刷几次才能把A串变成B串.串长≤100. 本来以为是个很简单的区间DP,后来发现直接区间DP是不行的,这玩意有后效性:刷完一整 ...

  2. UVALive 4394 String painter——dp

    设ans[i]为区间[1,i]已经染好的最小花费 若s[i]=t[i],ans[i]=ans[i-1] 否则ans[i]=min{ans[j-1]+cost(j,i)},cost(j,i)为区间[j, ...

  3. UVALive - 4394 (区间dp)

    题意: 给出两个字符串:每次可以选择第一个字符串的一个区间,全部刷成某一个字母: 问最少刷几次可以刷成第二个串. 题解: 假设a是一个空串,设dp[i][j]为把空串a的[i,i+len-1]位置刷成 ...

  4. DP UVALive 6506 Padovan Sequence

    题目传送门 /*题意:两行数字,相邻列一上一下,或者隔一列两行都可以,从左到右选择数字使和最大DP:状态转移方程:dp[i][j] = max (dp[i][j], dp[1-i][j-1] + a[ ...

  5. uva live 4394 String painter 间隔dp

    // uva live 4394 String painter // // 问题是,在培训指导dp运动主题,乍一看,我以为只是一点点复杂 // A A磕磕磕,两个半小时后,.发现超过例子.然而,鉴于他 ...

  6. The UVALIVE 7716 二维区间第k小

    The UVALIVE 7716 二维区间第k小 /** 题意:给一个n * n的矩阵,有q个查询每次查询r,c,s,k表示已(r,c)为右上角 大小为s的正方形中 第k小的元素n <= 250 ...

  7. UVALive 8513 lovers 2017 西安区域赛 B 贪心+multiset

    UVALive 8513 有2种人,每个人有自己的权值$A_i$ $B_i$ 当$A_i + B_i >=K$时 两个人可以配对 问最多多少人可以配对 解法 : 把$/{ A_i /}$ 排序 ...

  8. 训练指南 UVALive - 3713 (2-SAT)

    layout: post title: 训练指南 UVALive - 3713 (2-SAT) author: "luowentaoaa" catalog: true mathja ...

  9. 逆序数 UVALive 6508 Permutation Graphs

    题目传送门 1 /* 2 题意:给了两行的数字,相同的数字连线,问中间交点的个数 3 逆序数:第一行保存每个数字的位置,第二行保存该数字在第一行的位置,接下来就是对它求逆序数 4 用归并排序或线段树求 ...

最新文章

  1. AE实现不同图层的合并C#代码
  2. Python程序设计题解【蓝桥杯官网题库】 DAY11-算法训练
  3. sphinx源码分析总结
  4. Tomcat服务器环境配置--查看bat文件(解决Neither the JAVA_HOME nor the JRE_HOME environment variable is defined问题)
  5. LIGHTOJ 1005(组合数学)
  6. hibernate底层dao
  7. .NET代码混淆学习和解决视频批量转换中.wmv转换出错问题
  8. Java:检查器框架
  9. 文治者必有武备不然长大了挨欺负_2017届高考语文全国卷文言文专题阅读15篇(附答案)...
  10. unix 获取程序占用内存_如何减少Docker和Kubernetes中的JVM应用程序内存占用
  11. 信号与系统考研复习例题详解_小语种日语日本文学复习考研资料加藤周一《日本文学史序说(上)》笔记和考研真题详解...
  12. dh算法c语言,openssl开源程序dh算法解析之dh_key.c
  13. linux系统中归档管理器,深度商店应用归档管理器、KShutdown、7-Zip、California
  14. 分享一款免费刷相关搜索、联想下拉推荐、网页快照排名的软件
  15. 【STM32基础】第四篇、控制PWM占空比
  16. 盛诺基和信达生物达成临床研究合作
  17. 马王堆汉墓帛书‧老子——甲本释文(德经)
  18. Win10计算机窗口空白,windows10语言栏丢失怎么办?win10语言栏显示空白的解决办法...
  19. 黑色温敏性PNIPAM-AuNPs/CHOL-AuNPs纳米金粒修饰聚合物的制备过程
  20. JavaScript实现EAN13条码校验

热门文章

  1. 自驾出游系列之(二): 自驾游应该了解的各地春节民俗
  2. Opencv之cvtColor
  3. SVN设置忽略文件夹
  4. Eclipse插件安装(在线和离线方式)
  5. 查看linux 内核参数
  6. 蓝桥杯2020年第十一届C/C++B组(第二次)省赛习题题解
  7. v-permission来做权限管理
  8. Linux内核的下载和解压
  9. c语言switch逻辑用语,第一章 第二节用逻辑用语.doc
  10. 网络服务NFS文件共享