#1782. 珅泽教育CSP-J第一轮模拟考第八套 第 41 题

珅泽教育CSP-J第一轮模拟考第八套 第 41 题

第2题

有三种操作可以修改一个变量的值:

  • 增加:将变量加一;
  • 减少:将变量减一;
  • 翻倍:将变量翻倍。

函数 solve(x, y) 用于求解最少需要几步操作,才能将变量的值从 xx 变成 yy

std::map<int, int> mem;
int solve(int x, int y)
{
    int base = std::max(x - y, y - x);

    if (____(1)____)
        return ____(2)____;

    if (____(3)____)
        return mem[y];

    int reduce;
    if (____(4)____)
    {
        reduce = ____(5)____;
    }
    else
    {
        reduce = std::____(6)____;
    }

    mem[y] = std::____(7)____;
    return mem[y];
}

(1)(2) 处应填( )。

{{ select(1) }}

  • y <= x0
  • x <= y1
  • y <= xbase
  • x <= ybase