zoukankan      html  css  js  c++  java
  • hdu 2476 String painter

    http://acm.hdu.edu.cn/showproblem.php?pid=2476

    先从空白串变成字符串2,dp处理,dp[i][j]表示i到j区间的最小操作数。 然后在计算从字符串1变成字符串2的最小操作数。

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <algorithm>
     4 using namespace std;
     5 
     6 char s1[110],s2[110];
     7 int dp[110][110];
     8 int c[110];
     9 
    10 int main()
    11 {
    12     while(scanf("%s%s",s1,s2)!=EOF)
    13     {
    14         int n=strlen(s1);
    15         for(int i=0; i<n; i++)
    16         {
    17             for(int j=i; j<n; j++)
    18             {
    19                 dp[i][j]=j-i+1;
    20             }
    21         }
    22         for(int i=n-2; i>=0; i--)
    23         {
    24             for(int j=i+1; j<n; j++)
    25             {
    26                 dp[i][j]=dp[i+1][j]+1;
    27                 for(int k=i+1; k<=j; k++)
    28                 {
    29                     if(s2[i]==s2[k])
    30                     dp[i][j]=min(dp[i][j],dp[i+1][k-1]+dp[k][j]);
    31                 }
    32             }
    33         }
    34         for(int i=0; i<n; i++)
    35         {
    36             c[i]=dp[0][i];
    37             if(s1[i]==s2[i])
    38             {
    39                 if(i==0) c[i]=0;
    40                 else c[i]=c[i-1];
    41             }
    42             for(int j=0; j<i; j++)
    43             {
    44                 c[i]=min(c[i],c[j]+dp[j+1][i]);
    45             }
    46         }
    47         printf("%d
    ",c[n-1]);
    48     }
    49     return 0;
    50 }
    View Code
  • 相关阅读:
    EFCore
    PS-邮件发送异常信息
    python-Django
    Autofac
    swagger
    查看哪个程序占用了端口
    SQL SERVER-系统数据库还原
    破解root密码
    WebApi路由
    async,await.task
  • 原文地址:https://www.cnblogs.com/fanminghui/p/4032028.html
Copyright © 2011-2022 走看看