1. #include <iostream>
  2. #include <algorithm>
  3. #include <cstring>
  4. #include <cstdio>
  5. #include <string>
  6. #include <map>
  7. #include <cmath>
  8. #include <vector>
  9.  
  10. #define Faster ios::sync_with_stdio(false),cin.tie(0)
  11. #define Read freopen("in.txt","r",stdin),freopen("out.txt","w",stdout)
  12. #define Close fclose(stdin),fclose(stdout)
  13. const int maxn = ;
  14. using namespace std;
  15. const int MOD = 1e9+;
  16. typedef long long ll;
  17.  
  18. char s1[maxn];
  19. char s2[maxn];
  20. int dp[maxn][maxn];
  21. int len;
  22. int ans[maxn];
  23.  
  24. int main(){
  25. Faster;
  26. while(~scanf("%s%s", s1, s2)){
  27. len = strlen(s1);
  28. memset(dp, , sizeof(dp));
  29. for(int j = ;j < len; j++){ //j为尾
  30. for(int i = j;i >= ;i--){ //i为头
  31. dp[i][j] = dp[i+][j] + ; //每个都单独刷一次
  32. for(int k = i+;k <= j;k++){
  33. if(s2[i] == s2[k]){
  34. dp[i][j] = min(dp[i][j], (dp[i+][k]+dp[k+][j]));
  35. }
  36. }
  37. }
  38. }
  39. for(int i = ;i < len;i++){
  40. ans[i] = dp[][i];
  41. }
  42. for(int i = ;i < len;i++){
  43. if(s1[i] == s2[i]){
  44. ans[i] = ans[i-]; //对应位置相等的话,就不用刷新
  45. }
  46. else{
  47. for(int j = ;j < i;j++){
  48. ans[i] = min(ans[i], ans[j] + dp[j+][i]); //寻找j来分割区间的最优解
  49. }
  50. }
  51. }
  52. printf("%d\n", ans[len-]);
  53. }
  54. return ;
  55. }

H - String painter的更多相关文章

  1. HDOJ 题目2474 String painter(区间DP)

    String painter Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  2. HDU 2476 String painter(区间DP)

    String painter Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...

  3. HDU2476 String painter(DP)

    题目 String painter 给出两个字符串s1,s2.对于每次操作可以将 s1 串中的任意一个子段变成另一个字符.问最少需要多少步操作能将s1串变为s2串. 解析 太妙了这个题,mark一下. ...

  4. [一道区间dp][String painter]

    http://acm.hdu.edu.cn/showproblem.php?pid=2476 String painter Time Limit: 5000/2000 MS (Java/Others) ...

  5. hdu2476 String painter(区间dp)

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=2476 Problem Description There are two strings ...

  6. uva live 4394 String painter 间隔dp

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

  7. HDU2476 String painter

    题意 String painter Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  8. Go -- php 中的pack("H*", $string) 转换成go

    pack("H*", $string) 转化成这样: //16进制字符串转[]byte func HexToByte(hex string) []byte { length := ...

  9. 刷题总结——String painter(hdu2476)

    题目: Problem Description There are two strings A and B with equal length. Both strings are made up of ...

随机推荐

  1. R in Action(1) 基本数据结构

    一数据类型 R的数据类型包括数值型.字符型.逻辑型(布尔).复数型和原生型,同时R有好多存储数据的对象类型,包括标量.向量.矩阵.数组.数据框和列表,如下图所示下图(图的版权神马的归原作者跟原出版社所 ...

  2. 找到bashrc

    (1)直接sudo gedit ~/.bashrc就可以了,编辑完后关闭就行 (2)主文件夹下ctrl+h就能找到.bashrc文件 之所以要找到bashrc文件,是为了把命令 source /opt ...

  3. powerbuilder

    PowerBuilder美国Sybase公司研制的一种新型.快速开发工具,是客户机/服务器结构下,基于Windows3.x.Windows95和WindowsNT的一个集成化开发工具.它包含一个直观的 ...

  4. hadoop 添加,删除节点

    http://www.cnblogs.com/tommyli/p/3418273.html

  5. system调用命令行命令而不显示命令行窗口

    system调用命令行命令而不显示命令行窗口 通常用system调用命令行命令时都会弹出黑底白字的命令行窗口,下面的代码可以不显示弹出的命令行窗口. 代码如下 #pragma comment( lin ...

  6. java基础汇总

    1.关于Http和Hibernatet里面Session的区别HttpSession      HttpSession:是一个抽象接口,J2EE的Web程序在运行的时候,会给每一个新的访问者建立一个H ...

  7. Swing项目编译成exe,并且打包成安装文件(二)

    前面我们讲到了将Swing项目编译成双击可执行的文件exe,这篇我就教大家怎么把exe打包成需要在电脑安装的那种,首先需要一个工具,Inno Setup 编译器, 下载地址,我这个是汉化版的,双击打开 ...

  8. nyoj 1279 (河南省第九届ACM比赛 D 题)

    思路:变换一下坐标系新的坐标系就是给定的两条直线,变换之后求 x,y 都严格递增的点的个数的max: 求 x,y 都严格递增的点的个数的max,按照x的从小到大排序,x相同的按照y的从大到小排序然后对 ...

  9. UniCode转码

    <script type="text/javascript"> var GB2312UnicodeConverter = { ToUnicode: function ( ...

  10. 【CQ18高一暑假前挑战赛2】标程

    [昨晚打校赛,5个小时打完很累了,所以搞忘出题了...对不起学弟们,不过出的题都亲自写过一遍,可以保证题目和代码长度都不长,题目难度不大] [A:bush博弈] #include<bits/st ...