#1783. 珅泽教育CSP-J第一轮模拟考第八套 第 42 题
珅泽教育CSP-J第一轮模拟考第八套 第 42 题
第2题
有三种操作可以修改一个变量的值:
- 增加:将变量加一;
- 减少:将变量减一;
- 翻倍:将变量翻倍。
函数 solve(x, y) 用于求解最少需要几步操作,才能将变量的值从 变成 。
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];
}
(3) 处应填( )。
{{ select(1) }}
mem[y]mem.count(y)mem[x]mem.count(x)