当前位置: 首页 > news >正文

小浩的幂次运算(快速幂)

传送门

看到该题庞大的数据量以及幂运算,很明显,我们需要使用快速幂解决

然后对于该,我们可以对两边同时取对数,这样就可以得到对应的指数是多少,这里可以利用cmath库函数log()进行对数计算,只需进行简单的对数转换即可,例如log(8)/log(2)=log2(8)=3

值得注意的是因为这里利用了除法,因此还需要注意分母为0的情况

#include<iostream>
#include<cmath>
#define LL long long//开long long

using namespace std;

LL fun(LL a,LL b){//快速幂模板
	LL ans=1,temp,base,index;
	temp=a;
	base=a;
	index=b;
	while(b>0){
		if(b&1){
			ans=ans*temp;
		}
		temp=temp*temp;
		b>>=1;
	}
//	cout<<base<<"^"<<index<<"="<<ans<<endl;
	return ans;
}

signed main(){
	LL L,R,W,i=0,count=0;
	cin>>L>>R>>W;
	if(W==1){//特判分母为0的情况(因为log(1)=0)
		if(1>=L&&1<=R){
			cout<<1<<endl;
		}else{
			cout<<-1<<endl;
		}
		return 0;
	}
	LL index1=log(L)/log(W);//对数转换
	LL index2=log(R)/log(W);
	for(int i=index1;i<=index2;i++){
		LL res=fun(W,i);//得到对应数字
		if(!(res>=L&&res<=R)){//是否符合
			continue;
		}
		if(count==0){
			cout<<res;
		}else{
			cout<<" "<<res;
		}
		count++;
	}
	if(count==0){//一个都没输出就输出-1
		cout<<-1;
	}
	cout<<endl;
	return 0;
}

相关文章:

  • C# 获取当前设备硬件信息
  • leetcode329+Longest Increasing Path in a Matrix+dfs记忆化搜索record
  • php mysql大学生求职招聘资源信息网zkfdzkf67a8
  • InteIIiJ IDEA 2023.版本发布了!!!
  • Spring MVC 之适配器模式
  • 八大排序算法总结
  • 【2023年4月美赛加赛】Y题:Understanding Used Sailboat Prices 建模思路、建模方案、数据来源、相关资料、Python代码
  • 区块链基础知识
  • Vue3学习笔记:了解并使用Pinia状态管理
  • 测试行业3年经验,从大厂裸辞后,面试阿里、字节全都一面挂,被面试官说我的水平还不如应届生
  • 【计组】性能指标——速度
  • 第一章 信息资源管理基础
  • java真有一个关键字叫strictfp啊
  • MySQL OCP888题解069-CHECK TABLE
  • Redis 官方可视化工具-RedisInsight
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • 【刷算法】求1+2+3+...+n
  • CSS盒模型深入
  • ES学习笔记(12)--Symbol
  • Git的一些常用操作
  • MD5加密原理解析及OC版原理实现
  • nodejs实现webservice问题总结
  • node入门
  • Python爬虫--- 1.3 BS4库的解析器
  • WebSocket使用
  • 阿里云Kubernetes容器服务上体验Knative
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 官方解决所有 npm 全局安装权限问题
  • 基于web的全景—— Pannellum小试
  • 利用DataURL技术在网页上显示图片
  • 前端性能优化--懒加载和预加载
  • 世界上最简单的无等待算法(getAndIncrement)
  • 原生JS动态加载JS、CSS文件及代码脚本
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (solr系列:一)使用tomcat部署solr服务
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .net操作Excel出错解决
  • .NET中使用Protobuffer 实现序列化和反序列化
  • ??myeclipse+tomcat
  • @AutoConfigurationPackage的使用
  • @FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本...
  • @Resource和@Autowired的区别
  • [ vulhub漏洞复现篇 ] Jetty WEB-INF 文件读取复现CVE-2021-34429
  • []sim300 GPRS数据收发程序
  • [20181219]script使用小技巧.txt
  • [AIGC] Spring Interceptor 拦截器详解
  • [CSS]浮动
  • [DevEpxress]GridControl 显示Gif动画
  • [GN] DP学习笔记板子
  • [HackMyVM]靶场 Wild