51nod1183 編輯距離

2021-08-17 00:14:47 字數 583 閱讀 6658

思路:很類似於lcs,不過多一種情況而已,定義dp[i][j]為a以i結尾,b以j結尾的編輯距離,然後如果a[i]==b[j],那麼dp[i][j]=dp[i-1][j], 否則的話dp[i][j] = min(dp[i - 1][j], min(dp[i - 1][j - 1], dp[i][j - 1])) + 1;  dp[i-1][j]可以考慮刪除a的i,或者b中插入乙個字元和a[i]匹配,dp[i][j-1]同理,dp[i-1][j-1]就是將a[i]變成b[j]或者b[j]變成a[i]

ac**:

#includeusing namespace std;

const int mod = 1e9 + 7;

const int maxn = 1e3 + 5;

const double eps = 1e9;

typedef long long ll;

int dp[maxn][maxn];

int main()

else

} }printf("%d\n", dp[len1][len2]);

return 0;

}

51nod 1183 編輯距離

基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 編輯距離,又稱levenshtein距離 也叫做edit distance 是指兩個字串之間,由乙個轉成另乙個所需的最少編輯操作次數。許可的編輯操作包括將乙個字元替換成另乙個字元,插入乙個字元,刪除乙個字元。例如將kitte...

51 nod 1183 編輯距離

1183 編輯距離 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 編輯距離,又稱levenshtein距離 也叫做edit distance 是指兩個字串之間,由乙個轉成另乙個所需的最少編輯操作次數。許可的編輯操作包括將乙個字元替換成另乙個字元,插入乙個字元,刪除乙個字...

51nod 1183 編輯距離

思路 之前做個這道題,當時就感覺此題很像最長公共子串行,今天重新做51nod裡想了一次,思路是相同的,一開始初始陣列,最長公共子串行是0到n有多少個相同 這個是0到n需要轉化多少步 那自然也就是n步了 按著這個思路 a b 的a陣列前i個與b陣列前j個需要幾步轉化,相同思路,模擬 include i...