整数变换问题

整数变换问题 SDUT OJ 搜索问题 回溯 整数变换问题 Description 整数变换问题。关于整数i的变换f和g定义如下:f(i)=3i, g(i)=i/2(向下取整) 试设计一个算法,对于给定的2 个整数n和m,用最少的f和g变换次数将n变换为m。例如,可以将整数15用4 次变换将它变换为整数4:4=gfgg(15)。当整数n不可能变换为整数m时,算法应如何处理? 对任意给定的整数n和m,计算将整数n变换为整数m所需要的最少变换次数。 Input 输入数据的第一行有2 个正整数n和m。n≤100000,m≤1000000000。 O 阅读详情

Problem Description

整数变换问题。关于整数i的变换f和g定义如下:f(i)=3i;
试设计一个算法,对于给定的2 个整数n和m,用最少的f和g变换次数将n变换为m。例如,可以将整数15用4 次变换将它变换为整数4:4=gfgg(15)。当整数n不可能变换为整数m时,算法应如何处理?
对任意给定的整数n和m,计算将整数n变换为整数m所需要的最少变换次数。

Input

输入数据的第一行有2 个正整数n和m。n≤100000,m≤1000000000。

Output

将计算出的最少变换次数以及相应的变换序列输出。第一行是最少变换次数。第2 行是相应的变换序列。

Sample Input

15 4

Sample Output

4
gfgg

code:

#include<bits/stdc++.h>
#define INF 0x3f3f3f3f
using namespace std;

int cnt = 1, pos = 0;
char a[110];

int select(int n, int m, int i)
{
    if(i == 0) return 3*n;
    else return n/2;
}

bool dfs(int step, int n, int m)
{
    if(step>cnt) return false;
    for(int i = 0;i<2;i++)
    {
        int num = select(n, m, i);
        if(num == m||dfs(step+1, num, m))
        {
            if(i == 0)
            {
                a[pos] = 'f';
            }
            else
            {
                a[pos] = 'g';
            }
            pos++;
            return true;
        }
    }
    return false;
}

int main()
{
    int n, m;
    cin>>n>>m;
    while(!dfs(1, n, m))
    {
        cnt++;
    }
    cout<<cnt<<endl;
    cout<<a<<endl;
}

 

5-3整数变换问题 算法分析 整数变换问题。关于整数i 的变换f 和g 定义如下:f(i)=3i;g(i)=i/2。 试设计一个算法,对于给定的2 个整数n 和m,用最少的f 和g 变换次数将n 变换为m。 例如,可以将整数15 用4 次变换将它变换为整数4:4=gfgg(15)。 算法设计: 对任意给定的整数n 和m,计算将整数n 变换为整数m 所需要的最少变换次数。 立即下载

相关推荐

Keysight ADS新手必看:3分钟搞定TDR模拟的保姆级教程(附差分信号设置技巧)

本文为Keysight ADS新手提供TDR模拟的保姆级教程,详细介绍了从基础环境准备到差分信号设置的全流程。通过内置模板调用、待测器件连接和仿真结果解读,帮助用户快速掌握TDR模拟技术,特别包含差分信号配置技巧,提升信号完整性分析效率。

weixin_30872157的博客 197

整数变换问题【回溯算法】

整数变换问题【回溯算法】

m0_46308522的博客 4738

01 Aras Innovator二次开发实战:从IOM到AML的完整交互指南

本文详细介绍了Aras Innovator二次开发实战,从IOM到AML的完整交互指南。通过JavaScript和C#代码示例,展示了如何在客户端和服务端使用IOM进行开发,并深入解析AML语言的基础语法和调试技巧。文章还提供了文档管理和BOM管理等典型场景的实战案例,帮助开发者快速掌握Aras Innovator二次开发的核心技术。

wind6的博客 651

C 整数转换规则

以下内容参考C语言参考手册第五版 标量类型(算数类型和指针)可以转换为整数类型 布尔转换 在C99中,涉及_Bool类型的转换与涉及其他整数类型的转换稍有不同。把算数类型转换为_Bool类型时,如果原值为0,转换后的值为0。否则,转换后的值就是1。把指针类型转换为_Bool,null指针转换为0,其他所有指针值被转换为1。把_Bool类型转换为算数类型时,其结果是转换到目标类型的...

Shanks 884

TI IWR6843AOP雷达+DCA1000EVM数据采集:官方手册里的坑,我帮你踩完了

本文详细解析了TI IWR6843AOP雷达与DCA1000EVM数据采集实战中的12个关键细节,包括硬件连接陷阱、mmWave Studio隐藏设置、数据采集参数优化等,帮助开发者避开官方手册未提及的常见问题,提升数据采集效率和系统稳定性。

weixin_28366475的博客 1102

win10解决IE浏览器安装不上的问题(卸载依然显示不能安装)

目前win10 系统不支持外部ie安装程序,所以必须用win10自带的应用来安装 一、错误的卸载的方式 在控制面板的当前安装的程序界面是看不到ie的,需要选择控制面板左上角的启用或关闭windows功能 将ie11前面的勾勾去掉 这种方法是很多网站上的误区,其实这并没有卸载成功ie只是把ie的功能关闭了,但是他还在你的电脑上。你可以理解为我们说的对文件夹执行的隐藏文件夹功能。那个隐藏的文件夹依...

清平乐的技术专栏 3万+

整数变换问题(C语言)--回溯法

整数变换问题 题目描述 关于整数i的变换f和g定义如下:f(i)=3i;g(i)=i/2。 现要求对于给定的2个整数n和m,用最少的f和g变换次数将n变换为m。 具体代码实现 #include<stdio.h> #define MAX 100 #define MAXVALUE 32767 int m,n; int a[MAX]={0}; //记录变换数组 int b[MAX]; ...

一个巨大的博客 2463

vue支付项目-APP支付宝支付功能

如果用户已安装支付宝客户端,商家 App 唤起支付宝完成支付,支付完后跳回到商家 App 内,最后展示支付结果。如果用户没有安装支付宝客户端,商家 App 内会调起支付宝网页支付收银台,用户登录支付宝账号,支付完后展示支付结果。1.点击按钮开通或者续费,会验证是否选择会员商品以及对协议是否查看选中(这里根据项目需要自行验证,可忽略),验证通过打开选择支付方式弹窗页面,选择微信支付或者支付宝支付;4.可取消支付,放弃支付会返回会员页面,页面提示支付取消;1.判断支付方式,如果是2,则是支付宝支付方式。

总结前端开发中遇到的问题,分享前端知识 1万+

算法设计-整数变换问题

整数变换问题 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 整数变换问题。关于整数i的变换f和g定义如下:f(i)=3i; 试设计一个算法,对于给定的2 个整数n和m,用最少的f和g变换次数将n变换为m。例如,可以将整数15用4 次变换将它变换为整数4:4=gfgg(15)。当整数n不可能变换为整数m时,算法应如何处...

Kaka_chake的博客 758

基于分水岭分割进行肺癌诊断

近年来,肺癌的发病率和病死率均迅速上升,目前已居所有癌症之首。随着肺癌病人数量的增加,医生对肺部 CT 图像进行研判的工作量也增加了不少,在这种情况下难免工作效率降低甚至会出现误诊。为了帮助医生减少重复性工作,对肺部 CT 图像进行计算机辅助检测的技术就被广泛应用于对肺癌的诊断和治疗过程中。医学 CT 图像处理主要是研究医学图像中的器官和组织之间的关系,并进行病理性分析。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1568

(计算机组成原理)第二章数据的表示和运算-第二节:数字电路基础知识

本文介绍了计算机组成原理中的逻辑门电路、多路选择器和三态门。逻辑门电路包括基本逻辑运算(与、或、非)和复合逻辑运算(与非、或非、异或、同或),这些运算通过门电路实现,并满足分配律和结合律。多路选择器(MUX)用于从多个输入信号中选择一个输出,广泛应用于数据选择、资源共享和逻辑函数实现等场景。三态门则具有三种输出状态(高电平、低电平、高阻态),常用于总线控制和信号隔离。这些元件在数字电路设计和计算机系统中具有重要作用。

快乐江湖的博客 2474

D - 整数变换问题

D - 整数变换问题 Description 整数变换问题。关于整数i的变换f和g定义如下:f(i)=3i; 试设计一个算法,对于给定的2 个整数n和m,用最少的f和g变换次数将n变换为m。例如,可以将整数15用4 次变换将它变换为整数4:4=gfgg(15)。当整数n不可能变换为整数m时,算法应如何处理? 对任意给定的整数n和m,计算将整数n变换为整数m所需要的最少变换次数。 Input 输入数据的第一行有2 个正整数n和m。n≤100000,m≤1000000000。 Output 将计算出

°渐行渐远っ的博客 594

C++ 图像线特征提取(CannyLine算法+opencv3.4.6)

C++ 图像线特征提取(CannyLine算法+opencv3.4.6)

weixin_43896283的博客 1084
上一篇: 工作分配问题
下一篇: 机器学习练习——手写数字识别(PyTorch)
shadowam
博客等级 码龄10年 62粉丝 168原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值