简单变化 WA4分🤣

代码见下“

#include<bits/stdc++.h>

using namespace std;

int bfs(int x, int y) {
    queue<int> q;
    unordered_map<int, int> dist;
    q.push(x);
    dist[x] = 0;
    while (!q.empty()) {
        int t = q.front();
        q.pop();
        if (t == y) return dist[t];
        if (t < y && !dist.count(t * 2)) {
            q.push(t * 2);
            dist[t * 2] = dist[t] + 1;
        }
        if (t > 0 && !dist.count(t - 1)) {
            q.push(t - 1);
            dist[t - 1] = dist[t] + 1;
        }
    }
    return -1;
}

int main() {
    int T;
    cin >> T;
    while (T--) {
        int x, y;
        cin >> x >> y;
        cout << bfs(x, y) << endl;
    }
    return 0;
}

3 个赞

发个题目呗

4 个赞

题目是什么

2 个赞

别问我,我啥也布吉岛

3 个赞

时间:1s 空间:256M
题目描述:
小信有两个数 x 与 y。

小信可以对
x 进行
3 种 操作:

1.让 x 等于 x+1
2.让 x 等于 x−1
3.让 x 等于 2⋅x

小信想知道把 x 变成 y 至少需要操作多少次。

输入格式:
第一行包含一个整数 T,表示 T 组测试数据。

对于每一组测试数据:

第一行包含两个整数 x, y。

输出格式:
对于每一组测试数据,输出一个整数表示答案。

样例1输入:
1
5 17
样例1输出:
4

3 个赞

buhui

2 个赞

你怎么只有-1和*2?
+1去哪了

1 个赞

ni…你咋不写t+1呢?hsdvuihuivuiwefh

3 个赞

666

3 个赞