結果
問題 | No.225 文字列変更(medium) |
ユーザー |
![]() |
提出日時 | 2015-06-14 12:35:51 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 6 ms / 5,000 ms |
コード長 | 1,502 bytes |
コンパイル時間 | 594 ms |
コンパイル使用メモリ | 73,700 KB |
実行使用メモリ | 7,296 KB |
最終ジャッジ日時 | 2024-12-24 10:13:17 |
合計ジャッジ時間 | 1,546 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 22 |
ソースコード
#include<cstdio>#include<cmath>#include<cstring>#include<ctime>#include<iostream>#include<algorithm>#include<set>#include<vector>#include<sstream>#include<typeinfo>#include<fstream>using namespace std;int n, m;char s[1001],t[1001];int dp[1001][1001];/*void solve(){for (int i = 0; i <= n; ++i){for (int j = 0; j <= m; ++j){if (i == 0){dp[i][j] = j;continue;}if (j == 0){dp[i][j] = i;continue;}//dp[i][j]=1000000;if (s[i] != t[j]){dp[i + 1][j + 1] = min(dp[i][j + 1] + 1, min(dp[i + 1][j] + 1, dp[i][j]));}else if (s[i] == t[j]){dp[i + 1][j + 1] = min(dp[i][j], min(dp[i][j + 1] + 1, dp[i + 1][j] + 1));}//dp[i+1][j+1]=min(dp[i+1][j+1],dp[i][j+1]+1);//dp[i+1][j+1]= min(dp[i+1][j+1],dp[i+1][j]+1);}}}*/int main(){cin >> n >> m >> s >> t;/*for (int i = 0; i<n; i++){cin >> s[i];}for (int i = 0; i<m; i++){cin >> t[i];}*///solve();for (int i = 0; i <= n; ++i){for (int j = 0; j <= m; ++j){if (i == 0){dp[i][j] = j;continue;}if (j == 0){dp[i][j] = i;continue;}//dp[i][j]=1000000;if (s[i - 1] != t[j - 1]){dp[i][j] = min(dp[i - 1][j] + 1, min(dp[i][j - 1] + 1, dp[i - 1][j - 1] + 1));}else if (s[i - 1] == t[j - 1]){dp[i][j] = dp[i - 1][j - 1];}//dp[i+1][j+1]=min(dp[i+1][j+1],dp[i][j+1]+1);//dp[i+1][j+1]= min(dp[i+1][j+1],dp[i+1][j]+1);}}cout << dp[n][m] << endl;return 0;}