时间限制:1秒

空间限制:262144K

给定两个-100到100的整数x和y,对x只能进行加1,减1,乘2操作,问最少对x进行几次操作能得到y?
例如:
a=3,b=11: 可以通过3*2*2-1,3次操作得到11;
a=5,b=8:可以通过(5-1)*2,2次操作得到8;

输入描述:
输入以英文逗号分隔的两个数字,数字均在32位整数范围内。
输出描述:
输出一个数字
输入例子1:
3,11
输出例子1:
3

思路:广度优先搜索。(队列实现)

 #include <iostream>
#include <queue>
#include <cstdio>
using namespace std; int main() {
int x, y;
int cnt = ;
bool flag = false;
scanf("%d,%d", &x, &y);
queue<int> q;
q.push(x);
while (!q.empty()) {
int len = q.size();
for (int i = ; i < len; i++) {
int tmp = q.front();
q.pop();
if (tmp == y) {
flag = true;
break;
} else {
q.push(tmp + );
q.push(tmp - );
q.push(tmp * );
}
}
if (flag)
break;
cnt++;
}
cout << cnt << endl;
return ;
}
 #include <iostream>
#include <queue>
#include <cstdio>
using namespace std; int main() {
int x, y;
scanf("%d,%d", &x, &y);
queue<pair<int, int> > q;
pair<int, int> tmp({x, });
q.push(tmp); while (!q.empty()) {
tmp = q.front();
q.pop();
if (tmp.first == y) {
cout << tmp.second << endl;
break;
} else {
q.push({tmp.first + , tmp.second + });
q.push({tmp.first - , tmp.second + });
q.push({tmp.first * , tmp.second + });
}
}
return ;
}

求x到y的最少计算次数 (BFS)的更多相关文章

  1. 求x到y的最少计算次数

    链接:https://www.nowcoder.com/questionTerminal/45d04d4d047c48768543eeec95798ed6?orderByHotValue=1& ...

  2. x变成y的最少操作次数(层次遍历)

    输入x,y,x为源数字,y为目标值.输出x变成y的最少操作次数. x每次可以执行三种操作:-1 . +1 . x2: 如 x=5,y=8:5-1=4,4x2=8;所以输出结果为2(次操作). 可以发现 ...

  3. 给出两个单词word1和word2,写一个函数计算出将word1 转换为word2的最少操作次数。

    问题: 给出两个单词word1和word2,写一个函数计算出将word1 转换为word2的最少操作次数. 你总共三种操作方法: 1.插入一个字符 2.删除一个字符 3.替换一个字符 格式: 输入行输 ...

  4. [LeetCode] Minimum Moves to Equal Array Elements II 最少移动次数使数组元素相等之二

    Given a non-empty integer array, find the minimum number of moves required to make all array element ...

  5. Hash——字符串匹配(求s1在s2中出现的次数)

    题目描述: 这是一道模板题. 给定一个字符串 A 和一个字符串 B ,求 B 在 A  中的出现次数.A 和 B中的字符均为英语大写字母. 求A 在 B 中出现了几次.(可重叠) 样例输入: 3 BA ...

  6. 面试官:你有m个鸡蛋,如何用最少的次数测出鸡蛋会在哪一层碎?

    假设你面前有一栋n层的大楼和m个鸡蛋,假设将鸡蛋从f层或更高的地方放扔下去,鸡蛋才会碎,否则就不会.你需要设计一种策略来确定f的值,求最坏情况下扔鸡蛋次数的最小值. leetcode原题链接 乍一看这 ...

  7. POJ2431贪心(最少加油次数)

    题意:        给一个终点,然后给你一个卡车距离终点的距离,还有其他个加油站距离终点的距离,然后每走一个单位距离要花费一个单位油,卡车的邮箱是无限大的,而每个加油站的油量是有限的,整个路径是一个 ...

  8. nyoj最少乘法次数——快速幂思想

    最少乘法次数 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 给你一个非零整数,让你求这个数的n次方,每次相乘的结果可以在后面使用,求至少需要多少次乘.如24:2*2 ...

  9. Trees in a Wood. UVA 10214 欧拉函数或者容斥定理 给定a,b求 |x|<=a, |y|<=b这个范围内的所有整点不包括原点都种一棵树。求出你站在原点向四周看到的树的数量/总的树的数量的值。

    /** 题目:Trees in a Wood. UVA 10214 链接:https://vjudge.net/problem/UVA-10214 题意:给定a,b求 |x|<=a, |y|&l ...

随机推荐

  1. Jmeter -- 监听 -- 查看每个请求的启动时间等信息

    步骤: 1. 添加监听器 Add --> Listener --> View Results in Table 2. 执行线程组,查看监听信息

  2. java 后台封装json数据学习总结

    一.数据封装 1. List集合转换成json代码 List list = new ArrayList(); list.add( "first" ); list.add( &quo ...

  3. HashMap如何实现序列化

    /** * Save the state of the <tt>HashMap</tt> instance to a stream (i.e., * serialize it) ...

  4. 全面解读php-引用变量(&)

    本文讲述引用传值的核心原理,看完即可扫清一切和引用传值相关的内容,不会了记得画图. 一.memory_get_usage的使用 传值赋值 // 定义一个变量 $a = range(0, 10000); ...

  5. c# 单元测试 ,对静态方法(static)和私有方法(private) 进行单元测试

    利用反射: /// <summary> /// 调用静态方法 /// </summary>akf /// <param name="t">类全名 ...

  6. 如何数冲突域(collision domains)个数

    数冲突域的核心是: switch.bridge的每个端口都是一个冲突域(因为它们有存储转发功能) hub的所有端口在同一冲突域内(因为hub本身是模拟导线,各个端口可以看成接在一起) 对下图而言 共有 ...

  7. apache禁止php解析--安全

    #禁止解析php <Directory "/data/www/data/"> php_admin_flag engine off <filesmatch &quo ...

  8. 【汇总】Windows linux 敏感目录 路径汇总

    日期:2019-08-02 10:53:52 更新:2019-08-19 15:48:01 作者:Bay0net 介绍:中间件.套件等等敏感信息,做个记录. 0x01. 基本信息 遇到文件包含.任意文 ...

  9. 1 Configuring SAP ERP Sales and Distribution -introduction to SAP

    SAP is one of the most popular enterprise resource planning (ERP) solutions inthe world. It offers a ...

  10. linux中zookeeper开机自启动和注册为服务

    1.安装jdk,zookeeper就不说啦,自己搜索下. 2.开机自启动和注册为服务. (1)开机自启动:编辑/etc/rc.d/rc.local文件,添加zkServer.sh路径. vi /etc ...