最小编辑代价

来源:互联网 发布:手机淘宝怎么放优惠券 编辑:程序博客网 时间:2024/06/12 23:07
#include "iostream"  #include "string"  #include <algorithm>#include <vector>  using namespace std;int findMinCost(string A, int n, string B, int m, int c0, int c1, int c2) {    int dp[256][256];    memset(dp, 0, sizeof(int) * 256 * 256);    for (int i = 1; i <= n;i++)        dp[i][0] = dp[i - 1][0] + c1;    for (int j = 1; j <= m; j++)        dp[0][j] = dp[0][j - 1] + c0;    for (int i = 1; i <= n; i++) {        for (int j = 1; j <= m; j++) {            if (A[i - 1] == B[j - 1])                 dp[i][j] = dp[i - 1][j - 1];            else                 dp[i][j] = min(dp[i - 1][j - 1] + c2, min(dp[i][j - 1] + c0, dp[i - 1][j] + c1));        }    }    return dp[n][m];}//测试int main(int argc, char const *argv[]){    string s1 = "abc", s2 = "adc";    cout << findMinCost(s1, 3, s2, 3, 5, 3, 100) << endl;}
0 0
原创粉丝点击