動態規劃 最優編輯

2021-08-07 09:40:17 字數 691 閱讀 1433

題目:

對於兩個字串a和b,我們需要進行插入、刪除和修改操作將a串變為b串,定義c0,c1,c2分別為三種操作的代價,請設計乙個高效演算法,求出將a串變為b串所需要的最少代價。

給定兩個字串ab,及它們的長度和三種操作代價,請返回將a串變為b串所需要的最小代價。保證兩串長度均小於等於300,且三種代價值均小於等於100。

根據動態規劃特點,定義二維陣列來實現轉化代價的求值,最右下方所求即為所求。

難點在於,當兩個字串最後乙個字元不相同的情況,可以分為以下三種情況。

當字串a和字串b最後一位不相同時,可以通過三種變化方式來實現。

class mincost {

public:

int findmincost(string a, int n, string b, int m, int c0, int c1, int c2) {

// write code here

vector>dp(n+1);

for(int i=0;i<=n;i++)

dp[i].resize(m+1);

for(int i=0;i<=n;i++)

dp[i][0]=i*c1;

for(int i=0;i<=m;i++)

dp[0][i]=i*c0;

if(c0+c1

動態規劃 最優編輯

int findmincost string a,int n,string b,int m,int c0,int c1,int c2 初始化矩陣 dp 0 0 0 for int i 1 i m 1 i for int j 1 j n 1 j for int i 1 i n 1 i return d...

動態規劃求最優路徑

dynamic.py,基於動態規劃求最優路徑 import matplotlib.pyplot as plt import pylab as pl import connmysql import pandas as pd sql2 select id,distance,duration from t...

最優配對問題(動態規劃)

空間裡有n個點p0,p1,p2.pn 1,你的任務是把他們配成n 2對 n是偶數 使得每個點恰好在乙個點對中。所有點的距離之和應該盡量小。n 20.定義狀態d i s 為前i個點中,位於集合s的元素兩兩配對的最小距離,則狀態轉移方程就是 d i,s min 其中 pipj 表示兩點之間的距離。邊界是...