結果
問題 | No.225 文字列変更(medium) |
ユーザー |
![]() |
提出日時 | 2021-07-27 13:08:15 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 13 ms / 5,000 ms |
コード長 | 1,011 bytes |
コンパイル時間 | 1,607 ms |
コンパイル使用メモリ | 172,700 KB |
実行使用メモリ | 10,880 KB |
最終ジャッジ日時 | 2024-07-23 10:16:49 |
合計ジャッジ時間 | 2,735 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 22 |
ソースコード
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll, ll> pll; typedef vector<ll> vll; #define r(a, b, c, r, ...) r #define r2(i, a, b) for(ll i = ll(a); i < ll(b); ++i) #define r1(i, b) r2(i, 0, b) #define rep(...) r(__VA_ARGS__, r2, r1)(__VA_ARGS__) const ll INF = 1ll << 60; // 1e18 const ll MOD = 1000000007; int main() { { ll n; cin >> n; cin >> n; } string s, t; cin >> s >> t; vector<vll> d(s.size() + 1, vll(t.size() + 1, INF)); d[0][0] = 0; rep(i, -1, s.size()) rep(j, -1, t.size()) { if(i != -1 && j != -1) { if(s[i] == t[j]) d[i + 1][j + 1] = min(d[i + 1][j + 1], d[i][j]); else d[i + 1][j + 1] = min(d[i + 1][j + 1], d[i][j] + 1); } if(i != -1) d[i + 1][j + 1] = min(d[i + 1][j + 1], d[i][j + 1] + 1); // del if(j != -1) d[i + 1][j + 1] = min(d[i + 1][j + 1], d[i + 1][j] + 1); // insert } cout << d[s.size()][t.size()] << endl; }