【POJ No. 3134】幂运算 Power Calculus

news2025/7/23 12:20:21

【POJ No. 3134】幂运算 Power Calculus

POJ 题目地址

在这里插入图片描述

【题意】

从x 开始,反复乘以x ,可以用30次乘法计算x^31

在这里插入图片描述

平方运算可以明显地缩短乘法序列,以下是用8次乘法计算x^31 的方
法:

在这里插入图片描述

这不是计算x^31 的最短乘法序列。有很多方法只有7次乘法,以下是
其中之一:

在这里插入图片描述

如果除法也可用,则可以找到一个更短的操作序列。可以用6个运
算(5乘1除)计算x^31 :

在这里插入图片描述

如果除法和乘法一样快,则这是计算x^31 最有效的方法之一。

编写一个程序,通过从x 开始的乘法和除法,为给定的正整数n 找到计算x^n 的最少运算次数。在序列中出现的乘积和商应该是x 的正整数幂。

【输入输出】

输入:

输入是由一行或多行组成的序列,每行都包含一个整数n(0<n ≤1000)。以输入0结束。

输出:

单行输出从x 开始计算x^n 所需的最小乘法和除法总数。

【样例】

在这里插入图片描述

【思路分析】

本题从x 开始计算x^n 所需的最小乘法和除法总数,可以采用IDA*算法解决。

【算法设计】

① 初始化,指数ex[0]=1,深度depth=0。

② 进行深度优先搜索,如果ex[d ]=n ,则返回1。如果d≥depth,则返回0。如果当前指数在倍增depth-d 之后还小于n ,则返回0。

③ 从0到d 执行乘法,ex[d +1]=ex[d ]+ex[i ],深度优先搜索dfs(d +1),如果成功,则返回1;执行除法,ex[d +1]=abs(ex[d ]-ex[i]),进行深度优先搜索dfs(d +1),如果成功,则返回1。

④ 如果搜索失败,则深度depth++,重新开始搜索。

【算法实现】

#include<cstdio>
#include<cstdlib>
#include<algorithm>

using namespace std;

int n,depth;
int ex[15];

bool dfs(int d){
	
	if(ex[d]==n) return 1;
	if(d>=depth) return 0;//后面会搜索d+1层 
	if(ex[d]<<(depth-d)<n) return 0;
	for(int i=0;i<=d;i++){
        ex[d+1]=ex[d]+ex[i];//乘法
        if(dfs(d+1)) return 1;
        ex[d+1]=abs(ex[d]-ex[i]);//除法
        if(dfs(d+1)) return 1;
    }
    
    return 0;
}

void IDAstar(){
	ex[0]=1;
	for(depth=0;;depth++){
		if(dfs(0)){
	        printf("%d\n",depth);
	        break;
	    }
	}
}

int main(){
	
    while(~scanf("%d",&n),n){
		IDAstar();
    }
    
    
    return 0;
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/7620.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

20221115使用google文档翻译SRT格式的字幕

20221115使用google文档翻译SRT格式的字幕 2022/11/15 18:52 &#xff08;一&#xff09;将SRT格式的字幕用WPS转换为DOCX的文档。 &#xff08;请上传 .docx、.pdf、.pptx 或 .xlsx 文件&#xff09; https://www.google.com.hk/?gws_rdssl Google 拍照搜索 Google 提供&a…

F - Double Chance(期望,数学,树状数组优化)[AtCoder Beginner Contest 276]

题目如下&#xff1a; F - Double Chance 题目链接 思路 or 题解&#xff1a; 期望公式&#xff1a;∑valp\sum val \times p∑valp 还可以细分&#xff1a; 如果两次抽出的值是相同的&#xff0c;都是 xxx&#xff0c;那么抽出的方案数为 cntxcntxcnt_x \times cnt_xcntx​c…

Allegro 274X格式gerber输出全流程详细介绍

Allegro 274X格式gerber输出全流程详细介绍 下面介绍Allegro gerber输出的全流程介绍 首先把光绘设置好 设置光钻孔精度 会出现对话框,勾选Enhanced Excellon format,点击close 输出钻孔文件,选择Auto Tool select,点击Drill 输出椭圆孔文件,默认设置,然后点击rout…

一套SCDM脚本建模与二次开发攻略

导读&#xff1a;ANSYS SpaceClaim Direct Modeler&#xff08;简称 SCDM&#xff09;&#xff0c;是基于直接建模思想的新一代3D建模和几何处理软件&#xff0c;摒弃了基于历史的概念建模的约束的概念&#xff0c;让我们轻松完成几何的创建与修改&#xff0c;不会带来传统CAD系…

【附源码】计算机毕业设计JAVA晨光文具店进销存系统设计与开发

【附源码】计算机毕业设计JAVA晨光文具店进销存系统设计与开发 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xf…

m基于STBC的MIMO通信系统性能仿真和信道容量仿真

目录 1.算法概述 2.仿真效果预览 3.核心MATLAB预览 4.完整MATLAB程序 1.算法概述 空时分组编码STBC&#xff08;Space Time Block Coding&#xff09;用在无线通信中传输一个数据流的多个拷贝。通过许多天线来产生数据的多种接收版本&#xff0c;提高数据传输的可靠性。接收…

4、Redis配置文件介绍

文章目录4、Redis配置文件介绍4.1、###Units单位###4.2、###INCLUDES包含###4.3、###网络相关配置4.3.1、bind4.3.2、protected-mode4.3.3、Port4.3.4、tcp-backlog4.3.5、timeout4.3.6、tcp-keepalive4.4、###GENERAL通用###4.4.1、daemonize4.4.2、pidfile4.4.3、loglevel4.4…

一次SpringBoot版本升级,引发的血案

前言 最近项目组升级了SpringBoot版本&#xff0c;由之前的2.0.4升级到最新版本2.7.5&#xff0c;却引出了一个大Bug。 到底是怎么回事呢&#xff1f; 1.案发现场 有一天&#xff0c;项目组的同事反馈给我说&#xff0c;我之前有个接口在新的测试环境报错了&#xff0c;具体…

从应用层深入Framework层,Android Framework 该如何学习?

对于咱们Android开发来说&#xff0c;一般来说都是干上个几年之后&#xff0c;都得要考虑进阶或者是转行的问题。但老话说转行穷三年&#xff0c;不到万不得已我想大多数人都 不会去放弃现在的岗位与薪资。 如果你还在干Android并且想要进阶&#xff0c;那么对Framework的了解…

ava面试八股文-基础概念二

Java面试八股文-基础概念二1.重载与重写的区别2.接口与抽象类区别3.Java集合类-Collection6.lambda表达式与匿名内部类的区别1.重载与重写的区别 重载是编译时多态&#xff0c;重写是运⾏时多态。 方法重写&#xff1a; &#xff08;1&#xff09;参数列表与被重写方法的参数列…

低代码维格云明细视图入门教程

功能简介 低代码维格云可以将基础的数据通过设置操作权限、查询条件、限制数据范围、设置字段显示来创建数据表的明细视图。 设置步骤 功能入口 具体见报表简介 操作权限 数据表是拥有操作权限类别最多的自定义图表,操作权限包括: 可导出可见流程日志可留言可打印可添加数…

C. Balanced Bitstring(思维+子字符串规律)

Problem - 1405C - Codeforces 一个比特串是一个只由0和1字符组成的字符串&#xff0c;如果这个比特串的每个大小为k的子串都有相同数量的0和1字符&#xff08;各为k2&#xff09;&#xff0c;那么这个比特串就被称为k平衡的。 给你一个整数k和一个只由0&#xff0c;1&#xf…

来自BAT的一份Java高级开发岗面试指南:金三银四必定面试无忧

作为一名即将求职的程序员&#xff0c;你的就业机会和风口会出现在哪里&#xff1f;在这种新环境下&#xff0c;工作应该选择大厂还是小公司&#xff1f;已有几年工作经验的老兵&#xff0c;又应该如何保持和提升自身竞争力&#xff0c;转被动为主动&#xff1f; 就目前大环境…

VMware16虚拟机添加硬盘(磁盘)和挂载硬盘(磁盘)

记录&#xff1a;317 场景&#xff1a;在VMware16虚拟机&#xff0c;安装了CentOS 7.9操作系统场景下&#xff0c;添加硬盘(磁盘)和挂载硬盘(磁盘)。 版本&#xff1a; 操作系统&#xff1a;CentOS 7.9 1.机器配置 机器名称&#xff1a;B200&#xff1b;主机名称&#xff…

企业级数据中台应用架构和技术架构

一、什么是数据中台 数据中台是一种将企业沉睡的数据变成数据资产&#xff0c;持续使用数据、产生智能、为业务服务&#xff0c;从而实现数据价值变现的系统和机制。通过数据中台提供的方法和运行机制&#xff0c;形成汇聚整合、提纯加工、建模处理、算法学习&#xff0c;并以…

【路径规划-VRP问题】基于遗传算法求解出租车网约车接送客车辆路径规划问题附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

好未来(TAL)喜忧参半的前景

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经认为好未来&#xff08;TAL&#xff09;的前景喜忧参半。一方面&#xff0c;好未来已成功转向了新业务领域&#xff0c;如内容解决方案和学习技术解决方案&#xff0c;其新的直播电商业务也有巨大的增长潜力。另一…

npm nvm cnpm常见指令

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、nvm开头操作1.安装nodejs2.查看当前正在使用的版本3.切换使用的nodejs版本二、npm开头的操作1.全局安装cnpm2.查看npm的版本4.运行项目5.安装路由5.1 vue3 的…

FRNet:Feature Reconstruction Network for RGB-D Indoor Scene Parsing

1&#xff1a;铺垫 多数场景解析方法使用weak distinction和大的跨度&#xff0c;效果不是最好的。为了解决这个问题&#xff0c;作者使用了内在的多层跨模态数据和反向传播去构建一个新的特征重建网络FRNet&#xff0c;具体来说&#xff0c;encoder为了获得自上而下的逐层特征…

居民消费价格指数变化新鲜出炉,这类商品同比涨幅最大

对比分析2022年10月份全国居民消费价格数据发现&#xff0c;今年10 月份CPI 同比增2.5%&#xff0c;维持近8个月新高&#xff1b; PPI 同比增3.3%&#xff0c;同比涨幅较上个月回落 2.2 个百分点。 ​ | CPI同比增2.5%&#xff0c;维持近8个月新高 全国居民消费价格涨跌幅情…