题目描述
小w是云南中医学院的同学,有一天他看到了学校的百度百科介绍:
截止到2014年5月,云南中医学院图书馆纸本藏书74.8457万册,纸质期刊388种,馆藏线装古籍图书1.8万册,电子资源总量35TB,拥有中、外文数据库25个,电子图书29.5万册(镜像)、包库130万册。古籍线装图书1.8万余册,有39种列为本馆珍善本,如《彻滕八编》、《赵氏医贯》等明清版本、台湾文渊阁版本《四库全书》,按《全国古籍善本书总目》分类表(即:经·史·子·集四部分类)部编列、上架、供读者使用。
显然学校图书馆的占地面积非常大,于是他开始想象…如果他有一个跟图书馆一样大的游泳池?!
如果有一个那么大的游泳池,他就可以邀请女神一起去游泳…
如果有一个那么大的游泳池,他还可以划开一半出租,收取门票费赚钱…这样等赚了一些钱之后,就招一些游泳教练来,然后对外招生,招收学生继续赚更多的钱!
如果有一个那么大的游泳池,他还能把泳池里的水全部放光…开一个吕子乔心目中最大最棒的泳池派对!

等有了更多的钱,就可以在第一个泳池旁边再建一个一样大的泳池…
小w一边流口水一边想自己的未来,一想到女神看到自己事业有成,靠一个游泳池白手起家发家致富,对自己投怀送抱,高兴的根本合不拢嘴。
这时候旁边的小q作为小w的室友,随口提了一句:“这么大的泳池,你怎么换水?”
显然小w是个有原则的人,他不会让自己的泳池像不法商家一样不换水,用不干净的水给别人使用或者给自己使用。
小w百度了之后发现…淘宝里有一家店卖一种一次性抽水机,这种一次性抽水机很神奇,它有两个按钮:
1.如果泳池里的水(立方米)是3的倍数,那么可以按第一个按钮让它抽走泳池里三分之二的水
2.如果泳池里的水(立方米)是2的倍数,那么可以按第二个按钮让它抽走泳池里二分之一的水
小w虽然是个有原则的人,但是作为一个商人,他需要节省钱…而且他现在有两个泳池…但是显然这种抽水机不能把水抽光,水越少,性价比就越低。
但是两个泳池建在一起,如果两个泳池的水面不一样高,那么小w会很不开心,所以他想用这种抽水机,把两个泳池里的水抽成一样多。然后再考虑别的…当然在保证能把两个泳池里的水抽成一样多的情况下…他希望花的钱最少…
(不管了!好看最重要,好看才能吸引顾客啊!先好看!再考虑怎么换水吧)

输入
多组测试数据,给出A,B表示两个泳池当前的水量(立方米)

(1<=A,B<=10^9)

输出
每组测试数据输出一个整数表示至少需要买多少个一次性抽水机,若买多少个都不能让泳池的水相等,则输出"-1"

样例输入
复制样例数据
5 20
14 8
6 6
样例输出
2
-1
0

提示
显然这一切都是他的YY,他怎么可能会有游泳池???

出题人大概是同一个,继续沿用了啰嗦的风格,一个深搜就可以解决的问题,赘述了半天,本来以为是思维题,但是深搜就够了,就是两个水池不断放水,直到相等为止。

AC代码

#include<iostream>
#include<string.h>
using namespace std;
int mini=0x3f3f3f;
void dfs(int n,int m,int cnt)
{if(cnt>mini)return;if(n==m){mini=min(mini,cnt);return ;}if(n>m){if(n%2==0)dfs(n/2,m,cnt+1);if(n%3==0)dfs(n/3,m,cnt+1);}else     if(n<m){if(m%2==0)dfs(n,m/2,cnt+1);if(m%3==0)dfs(n,m/3,cnt+1);}
}
int main()
{int n,m;while(cin>>n>>m){mini=0x3f3f3f;dfs(n,m,0);if(mini==0x3f3f3f)cout<<"-1"<<endl;else cout<<mini<<endl;}return 0;
}

不存在的泳池 DFS相关推荐

  1. java圆形泳池问题_Java实现 LeetCode 778 水位上升的泳池中游泳(二分+DFS)

    778. 水位上升的泳池中游泳 在一个 N x N 的坐标方格 grid 中,每一个方格的值 grid[i][j] 表示在位置 (i,j) 的平台高度. 现在开始下雨了.当时间为 t 时,此时雨水导致 ...

  2. LeetCode 778. 水位上升的泳池中游泳(二分查找+dfs)

    文章目录 1. 题目 2. 解题 1. 题目 在一个 N x N 的坐标方格 grid 中,每一个方格的值 grid[i][j] 表示在位置 (i,j) 的平台高度. 现在开始下雨了.当时间为 t 时 ...

  3. 778. 水位上升的泳池中游泳

    链接:778. 水位上升的泳池中游泳 题解:https://leetcode-cn.com/problems/swim-in-rising-water/solution/shui-wei-shang- ...

  4. 【图论刷题-4】力扣 778. 水位上升的泳池中游泳

    图论刷题 机器人的运动范围 矩阵中的路径 图像渲染 水位上升的泳池中游泳 778. 水位上升的泳池中游泳 力扣原题 地址 难度与标签 困难难度 深度优先遍历 广度优先遍历 并查找 题目描述 在一个 n ...

  5. leecode 778 水位上升的泳池中游泳

    来源:力扣(LeetCode) 778 水位上升的泳池中游泳 在一个 n x n 的整数矩阵 grid 中,每一个方格的值 grid[i][j] 表示位置 (i, j) 的平台高度. 当开始下雨时,在 ...

  6. [JS][dfs]题解 | #迷宫问题#

    题解 | #迷宫问题# 题目链接 迷宫问题 题目描述 定义一个二维数组 N*M ,如 5 × 5 数组下所示: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 1, 1 ...

  7. [C] [编程题]连通块(DFS解决)

    时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 256M,其他语言512M 来源:牛客网 金山办公2020校招服务端开发工程师笔试题(一) 题目描述 给一个01矩阵,1代表是陆地,0代表 ...

  8. 【BZOJ2434】[NOI2011]阿狸的打字机 AC自动机+DFS序+树状数组

    [BZOJ2434][NOI2011]阿狸的打字机 Description 阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机.打字机上只有28个按键,分别印有26个小写英文字母和'B'.'P ...

  9. usaco snail trails(dfs)

    dfs啊,我还写了好长时间,一天不如一天. /* ID:jinbo wu TASK: snail LANG:C++ */ #include<bits/stdc++.h> using nam ...

最新文章

  1. ajax img标签,如何将属性添加到img标签以用于ajax调用
  2. 计算机斐波那流程图,循环结构——斐波那契数列.DOC
  3. leetcode 1423. 可获得的最大点数(滑动窗口)
  4. 网络通道数2的倍数_限流笔记-通道限流(二)
  5. target java_java元注解 @Target注解用法
  6. Gitlab的使用总结
  7. php二分查找法实例
  8. 威联通 ※ 群晖 虚拟机性能对比 我可能要碰瓷 eSir
  9. python小世界网络生成
  10. 探花交友(3)——接口实现分析
  11. 专升本英语——语法知识——高频语法——第五节 状语从句(时间状语从句-地点状语从句-原因状语从句-结果状语从句-条件状语从句-目的状语从句-让步状语从句-比较状语从句-方式状语从句)【学习笔记】
  12. 小米米家打印机,打印状态提示出错无法正常打印,怎么办?
  13. exit() _exit()
  14. 示波器表笔旁边的夹子是什么_示波器探头的地线夹子应该要靠近测量点
  15. cron每两个小时_cron命令每12小时运行一次
  16. Web前端期末大作业-重庆旅游景区网页设计(HTML+CSS+JS)
  17. 回到20年前,我一定好好念书
  18. vue 插件 滑块验证_vue之滑块验证码
  19. 课堂/会议同屏教学解决方案之RTSP/RTP over UDP组播解决方案
  20. css添加过渡色,CSS过渡与转换

热门文章

  1. 简单的LRU Cache设计与实现
  2. 计算机网络学习1-网络层次
  3. MVC html 控件扩展【转载】
  4. Sliverlight中使用Path绘制复杂几何图形
  5. vue 利用axios请求接口下载excel
  6. Hibernate的HQL中in参数设置和JdbcTemplete中的in参数
  7. 一道哈夫曼二叉树题目--稍微容易一点
  8. Thinkphp5之ajax分页实现_paginate()参数详细
  9. centOS7安装nodejs(8.4.0)(详细步骤)
  10. 『商务口语』2010.01.11--你要在这里停留多久?