WHALEon120.github.io

TIOJ 1011 . Edit Distance In Numbers

回前頁

題目敘述

點我

我的想法

一開始想一直用條件判斷,不斷做分色dp
但後來實作時發現沒有判斷依據要執行哪個變成接近值
才發現是要轉成二進位做刪除,增補等動作
但是這樣玩字串有點麻煩
所以反過來變成他們都要經過幾次刪除
才能變成一樣的東西
邏輯:比大小 除以二(刪除末尾位元)

我的AC CODE

#include <bits/stdc++.h>
using namespace std;
int main() {
    int A, B, ans = 0;
    cin >> A >> B;
    while (A != B) {
        (A > B? A : B) /= 2;
        ++ans;
    }
    cout << ans << endl;
    return 0;
}

感想

解題需要注意是否有n進位方向的嫌疑
例外edit distance 在字串裡也是重要dp演算法,要再注意
喔喔對了,到今天才發現我一直把tioj敲成toij(欠揍
所以以前網址不變
但是這篇文以後都會