dfs(深搜反推)

news/2024/7/20 20:08:47 标签: 深度优先, 算法

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
 

给定两个整数 a,b (a≤b)a,b\ (a \leq b)a,b (a≤b),在一次操作中,你可以选择以下三个操作中的任意一个进行操作:

a+1

a*a

a*2

请求出将 aaa 变成 bbb 的最少操作次数。

输入描述:

 

第一行包含一个整数 T (1≤T≤50)T \ (1 \leq T\leq 50)T (1≤T≤50),表示测试用例的组数。

每组测试用例的第一行包含两个整数 a,b (1≤a≤b≤1012)a,b \ (1\leq a\leq b\leq10^{12})a,b (1≤a≤b≤1012)。

输出描述:

对于每组测试用例,输出一个整数,表示最少操作次数。

分析:

1.a的平方如果小于等于b,那么sqrt(b)>=a,那么可以反推,f(n)=f(sqrt(n))+1+n-sqrt(n)*sqrt(n)

2.a*2同理


#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
ll a,b;
ll dfs(ll md)
{
   ll sums=0;
   sums=md-a;
    if(sums==0)return 0;
   ll sq=sqrt(md);
   if(sq>=a)sums=min(sums,dfs(sq)+1+md-sq*sq);
   if(md/2>=a)sums=min(sums,dfs(md/2)+1+(md&1));
    return sums;
}
void solve()
{
  cin>>a>>b;
  ll md=dfs(b);
    cout<<md<<'\n';
}
    int main()
   {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    ll t=1;
    cin>>t;
    while(t--)
    solve();
    return 0;
    }


http://www.niftyadmin.cn/n/4996590.html

相关文章

力扣27.移除元素

27. 移除元素 提示 简单 1.9K 相关企业 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序…

系列六、Java操作RocketMQ简单消息之异步消息

一、概述 异步消息通常应用在对响应时间比较敏感的业务场景中&#xff0c;即发送端不能长时间的容忍等待Broker的响应&#xff0c;发送端发送完消息后会有一个异步消息通知。 二、案例代码 2.1、pom 同系列五 2.2、RocketMQConstant 同系列五 2.3、SimpleConsumer 同系列五…

【clojure】02-clojure中的方法1

一、Clohjure常用方法 1.range (range) (range) (0 1 2 3 4 5 6 7 8 9 10 ... 12770 12771 12772 12773 ... n)(range end) (range start end) (range start end step) (take 4 (range)) ; (0 1 2 3)2.vec (vec coll) 转成数组[] 3.apply (apply f args)(apply f x ar…

22 Linux高级篇-定制自己的Linux系统

22 Linux高级篇-定制自己的Linux系统 文章目录 22 Linux高级篇-定制自己的Linux系统22.1 Linux7启动流程介绍22.1.1 Linux7启动流程22.1.3 systemd概述 22.2 *制作min-linux思路分析22.3 操作步骤步骤1&#xff1a;创建新磁盘步骤2&#xff1a;制作启动盘步骤3&#xff1a;创建…

给视频添加背景图片,让它们更具魅力!

想要让你的视频更加出彩吗&#xff1f;给它们添加背景图片是不错的选择&#xff01;但是&#xff0c;如何做到呢&#xff1f;不用担心&#xff0c;我们的视频剪辑高手可以帮助你轻松实现&#xff01;我们提供多种背景图片选择&#xff0c;你可以根据自己的喜好和需求进行选择。…

Spring 中存取 Bean 的相关注解

目录 一、五大类注解 1、五大类注解存储Bean对象 1.1Controller(控制器储存) 1.2Service(服务存储) 1.3Repository(仓库存储) 1.4Component(组件存储) 1.5Configuration(配置存储) 2、五大类注解小结 2.1为什么要这么多类注解 2.2 五大类注解之间的关系 二、方法注解 1.方法注…

STS4 New 安装Spring Bean Configuration File

背景介绍 在创建spring项目后&#xff0c;如果想想创建spring bean Configuration的时候&#xff0c;发下菜单没有这个选项&#xff0c;需要通过下载Spring Roo插件可满足该操作。 参考案例 参考地址&#xff1a; STS4 New 菜单没有Spring Bean Configuration File选项_SQZHA…

Spring Boot 中使用 MyBatis 创建数据库表

一、准备创建表的 SQL 语句 使用 MySql 数据库&#xff0c;为了方便测试&#xff0c;所以提前准备了创建表 SQL 语句&#xff0c;内容如下: CREATETABLEIFNOTEXISTSuser (idint(0) NOTNULL AUTO_INCREMENT COMMENT主键,group_idint(0) NULLDEFAULTNULLCOMMENT组号,…