結果
問題 |
No.225 文字列変更(medium)
|
ユーザー |
|
提出日時 | 2019-05-31 15:48:32 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 753 bytes |
コンパイル時間 | 477 ms |
コンパイル使用メモリ | 54,932 KB |
実行使用メモリ | 7,548 KB |
最終ジャッジ日時 | 2024-09-17 16:12:56 |
合計ジャッジ時間 | 1,532 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 7 WA * 15 |
ソースコード
#include <iostream> #include <string> using namespace std; int N, M; string S, T; int dp[1001][1001]; int rec(int i, int j){ if(i < 0 || j < 0) return 0; if(i==0 && j == 0) return 0; if(i == 0) return T.size(); if(j == 0) return S.size(); if(dp[i][j] != -1) return dp[i][j]; int ret = 1000001; if(S[i] == T[j]) ret = rec(i-1, j-1); else { ret = min(ret, rec(i-1, j) + 1); ret = min(ret, rec(i, j-1) + 1); ret = min(ret, rec(i-1, j-1) + 1); } return dp[i][j] = ret; } int main(void){ // Your code here! for(int i = 0; i <= 1000; i++) for(int j = 0; j <= 1000; j++) dp[i][j] = -1; cin >> N >> M; cin >> S >> T; cout << rec(S.size()-1, T.size()-1) << endl; }