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;
}
相关推荐
青山木1 小时前
Hot 100 --- LRU 缓存
java·数据结构·算法·leetcode·链表·缓存·哈希
“码”力全开1 小时前
ONVIF摄像头接入项目实战记录
人工智能·算法·边缘计算
星夜夏空991 小时前
C++学习(3) —— C++输入输出流
c++·学习
CAU界编程小白1 小时前
CAU抢课脚本
c++·脚本
MOONICK1 小时前
windows原生条件变量支持
c++·windows
AI科技星2 小时前
公理化数学化学|48小时确权终稿(完整投产包)
人工智能·数学·算法·重构·拓扑学·乖乖数学·全域数学
汉克老师2 小时前
GESP2026年6月认证C++二级( 第三部分编程题(1、完全平方数计数))精讲
c++·循环·枚举算法·gesp2级·平方数·逆向枚举·区间判断
wuminyu2 小时前
markword在高并发场景下变化剖析
java·linux·c语言·jvm·c++
星夜夏空992 小时前
C++学习(1) ——C与C++
c语言·c++·学习