20求解
查看原帖
20求解
1231714
Yuki_20040408楼主2024/1/5 10:55
#include <iostream>
#include <vector>

using namespace std;

int min(int a, int b) {
    return (a < b) ? a : b;
}
int main() {
    int n;
    cin >> n;
    int x = 1;
    int dp[n+1] = {0};
    for (int i = 2; i <= n; i ++) {
        if (i % 2 == 0) {
            dp[i] = min(dp[i-1] + 1, dp[i/2] + 1);
        } else {
            dp[i] = min(dp[i-1] + 1, dp[i/2+1] + 1);
        }
    }
    cout << dp[n] << endl;
    return 0;
}
2024/1/5 10:55
加载中...