AtCoder Beginner Contest 465 D - X to Y

D - X to Y

思路

这道题对于每一次的x,我们都能做出乘k+x或是除以k的选择,我们可以将其视为一个决策树,乘k加x为其子节点,除k为其父节点,这样这道题就是求出x和y的lca了。

tip:遇到决策尝试转化成决策树。

正解

cpp 复制代码
#include<bits/stdc++.h>
#define int  long long

using namespace std;


int T;

inline void solve(){
    int x, y, k;
    cin>>x>>y>>k;
    int ans = 0;
    while(x != y) {
        if(x > y) x /= k;
        else if(x < y) y /= k;
        ans ++;
    }
    cout<<ans<<'\n';
}

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cin>>T;
    while(T--) solve();
    return 0;
}
相关推荐
hanlin035 小时前
刷题笔记:力扣第32题-最长有效括号
笔记·算法·leetcode
一拳一个呆瓜5 小时前
【STL】文件系统导航
c++·stl
All for pursuit.5 小时前
【动态规划-21】312.戳气球
数据结构·c++·算法·leetcode·动态规划
栈帧之外5 小时前
【C++】STL之set
开发语言·c++
zhanghaha13146 小时前
C++构造函数的一些其他应用(逐词逐句保姆讲解)
c++
jimy17 小时前
c++的 Type Traits (二、更详细版本)
开发语言·c++
碧海银沙音频科技研究院7 小时前
基于炬芯ATS3089X自研AEC声学回声消除算法
算法
通问AI8 小时前
在两台 Mac Studio 上跑 800B 模型:MLX + RDMA over Thunderbolt 实测与四道门选型法
算法
ZywOo6238 小时前
《算法竞赛进阶指南》0x03 前缀和与差分
算法
Scintilla_y8 小时前
DAY2 滑动窗口
算法·leetcode·散列表