• poj 3356 AGTC


    题意:

        给定两个字符串,求经过多少次的增删改操作可使两个字符串相同。与poj2192相似,用dp[n]记录使str1前n个字符与str2前m个字符相同的最少操作数。每次的判断都有三种情况,即str1前i个字符str2前j-1个字符,str1前i-1个字符str2前j个字符,str1前i-1个字符str2前j-1个字符。取三种情况经过本次操作后的最小值即可。
        

    代码:


    #include<iostream>
    #include <cstring>
    using namespace std ;
    int min(int a, int b, int c){
        int m = 1000000 ;
        if(a<m) m = a ;
        if(b<m) m = b ;
        if(c<m) m = c ;
        return m ;
    }
    int main(){
        int n, m ;
        char str1[1010], str2[1010] ;
        int dp[1010][1010] ;
        int i, j ;
        while(cin >> n >> str1 >> m >> str2 ){
            memset(dp, 0sizeof(dp)) ;
            for(i=0; i<=n; i++)
                dp[i][0] = i ;
            for(i=0; i<=m; i++)
                dp[0][i] = i ;
            for(i=1; i<=n; i++)
                for(j=1; j<=m; j++)
                    if(str1[i-1]==str2[j-1])
                        dp[i][j] = min(dp[i-1][j]+1, dp[i][j-1]+1, dp[i-1][j-1]) ;
                    else
                        dp[i][j] = min(dp[i-1][j], dp[i][j-1], dp[i-1][j-1]) + 1 ;
            cout << dp[n] << endl ;

        }
        return 0 ;
    }

  • 相关阅读:
    linux的find命令详解
    在接口中的静态方法来获取model的实例对象
    php函数decbin
    cookie的默认有效目录
    html的base标签
    mysql多位小数字段用decimal类型
    vmware在桥接模式下配置centos7网络
    iis_rewrite3突然无法使用(因为它过期啦)
    LightGBM 调参方法(具体操作)
    沪深股票的复权计算(复权因子的应用)--代码实现
  • 原文地址:https://www.cnblogs.com/xiaolongchase/p/2137833.html
Copyright © 2020-2023  润新知