[校内测试]Sunshine's book(快速幂)

算法基础 -- 快速幂算法详解 核心思想:利用幂次的奇偶性和二进制表示,逐步将规模缩小到对数级别。常见应用大数运算:计算ana^nan的值;模运算:如anmodmanmodm;矩阵快速幂:用于斐波那契数列等问题。实现要点按指数奇偶分类,折半处理;取模时加上每次乘法后的模操作,防止溢出。 阅读详情

=== ===

这里写图片描述
这里写图片描述

=== ===

题解

因为每次总是要对较小的那一个进行操作,所以考虑a操作以后会变成什么。
如果a小于b,那么a将会变成2*a;否则a会变成a-b。关键是想到a-b可以写作2*a-(a+b)。可以发现减去a+b的原因就是为了保证2*a不要大于a+b,这和取模操作十分类似。也就是说a每次操作完了会变成2*a%(a+b)。一共要进行k次,把这k个2提出来做快速幂然后就可以得到a,进而也就可以得到b。

代码

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int a,b,k,p;
int powww(long long v,int t,int Mod){
    long long ans=a;
    while (t!=0){
        if (t&1) ans=(ans*v)%Mod;
        v=(v*v)%Mod;t>>=1;
    }
    return ans;
}
int main()
{
    scanf("%d%d%d",&a,&b,&k);
    p=powww(2,k,a+b);
    printf("%d\n",min(p,a+b-p));
    return 0;
}

偏偏在最后出现的补充说明

考虑单次操作的影响是一个常用的思路。

矩阵快速幂(模板+例题) 模板#include<cstdio> #include<cmath>//pow函数,其实没啥用 using namespace std;int n;long long k; const int N=pow(10,9)+7; struct node{long long a[105][105];}; node shu,ans,mp; //shu是输入的矩阵,ans是所求答案 node matrix( 阅读详情

相关推荐

快速幂、快速幂取模的分析与代码实现

写在前面 在网上搜了相关内容,感觉写的都不是特别详细,也没有人讲,只能自己理解了。下面会写一下这3个算法的分析与实现。当然都是基于自己的理解。因为博主搜了很多博客都是没有详细的解释,数学渣一脸懵逼啊。所以关于原理的解释如果有错误请一定要评论我改正! 朴素的求幂算法 也就是平常使用pow函数,最简单的实现就是一直累乘,可以得到这样的代码: int Pow(int a,int b){ ...

iwts 1万+

快速幂 详解

快速幂 详解

T_Y_F_的博客 3786

Summary

ATP感觉自己退役之前是用不上机房的空调了【笑

ADP+Pi==ATP 1万+

快速幂 quickPow

文章目录概念运算实现递归非递归 概念 快速幂,顾名思义,很快速的进行幂运算。 时间复杂度O(log nnn)。 运算 想要幂得快,就得算的少。 从时间复杂度上也可以看出来,快速幂每次都会使运算折半。 也就是: 举个例子,5^10。 5^10 1:5^5 2:5^4 * 5 3:5^2 4:5^1 5:5^0 * 5 实现 mod的存在是为了更好地处理题中碰到取模的情况。不需要的话可以取1e9+7或者直接去掉。 递归 int mod; int quickPow(int a, int n) { i

Zoybzo想AK 449

camera 知识速查

本文总结了Camera开发中的常见问题排查方法和关键技术点。主要内容包括:I2C/MIPI不通的排查步骤、时序问题分析方法、Sensor/AF/Flash/PDAF的Bring Up流程、OTP调试方法、PDAF原理及调试、CTS/ITS问题解决思路、AE震荡解决方案、Systrace性能分析方法、Flicker产生原理、Tombstone问题定位等。还涉及V4L2框架解析、问题定位分层方法、Sensor Setting注意事项、时钟信号概念、第三方应用卡顿排查、大光圈概念、Monkey测试方法。

qq_41665131的博客 784

EPLAN 设备接线图模板制作

属性摆放 设备连接图设置(选项 - - 设置) 连接图生成

weixin_36447711的博客 7865

快速幂

概率 顾名思义,快速幂就是快速算底数的 n 次幂。其时间复杂度为 O(log₂N),与朴素的 O(N) 相比效率有了极大的提高。 原理 使用求 a 的 b 次方来解释。把 b 转换成二进制数,该二进制数第 i 位的权为 。例如:,11 的二进制为 1011,即 ,因此,可以将 转化为算 。这样原来计算 需要计算 11 次,通过快速幂只需要计算 3 次。从而降低了算法的复杂度。 算法思路...

努力中的老周的专栏 275

二分幂,快速幂,矩阵快速幂,快速乘

前言二分幂,快速幂,矩阵快速幂在算大指数次方时是很高效的。求 a^n 的值是多少?n是1到10^18次方的一个整数。   求一个数的n次方,朴素的算法就是直接for循环,一遍一遍的乘,a*a*a*a*a*a… …,O(N)的复杂度。此时,如果n很小的话,并没有什么影响。   但是当n非常大,n=10^18,O(N)也会超时,那么需要更快的算法,二分幂算法 和 快速幂算法。 而对

丁磊_ml的博客 9480

Win10局域网内文件共享+远程桌面控制保姆级教程(含常见问题解决)

本文提供Win10局域网内文件共享和远程桌面控制的详细教程,包括环境检查、共享文件夹设置、远程桌面连接步骤及常见问题解决方案。通过内置功能实现高效办公协作,提升多设备协同工作效率,特别适合需要频繁传输文件或远程控制场景的专业人士。

rose2的博客 778

SAP LSMW数据批导操作手册及跨客户端传输方法(涉及默认值配置,及多余字段如何删除)

SAP LSMW数据批导操作手册及跨客户端传输方法

我好像病了的博客 6087

UVA10006 - Carmichael Numbers

当今计算机科学的一个重要的领域就是密码学。有些人甚至认为密码学是计算机科学中唯一重要的领域,没有密码学生命都没有意义。   阿尔瓦罗就是这样的一个人,它正在设计一个为西班牙杂烩菜饭加密的步骤。他在加密算法中应用了一些非常大的素数。然而确认一个非常大的数是不是素数并不是那么简单。一个费时的方法是用比这个数的平方根小的所有素数去除它,对于大整数来说,这样一定会毁掉这个杂烩菜饭的。   然而,一些很...

独钓门前月 537

VUE3如何使得大屏自适应的几种方法?

16:9。

weixin_42711805的博客 1万+

50 Pow(x, n)(快速幂)

1. 问题描述: 实现pow(x, n),即计算 x 的 n 次幂函数。 示例 1: 输入: 2.00000, 10 输出: 1024.00000 示例2: 输入: 2.10000, 3 输出: 9.26100 示例3: 输入: 2.00000, -2 输出: 0.25000 解释: 2-2 = 1/22 = 1/4 = 0.25 说明: -100.0 <x< ...

二哈 247

Win11家庭版如何让Win+R运行CMD默认管理员权限?3种方法实测有效

本文针对Win11家庭版用户,实测了三种让Win+R运行CMD默认获取管理员权限的有效方法。通过分析UAC机制与家庭版功能限制,详细介绍了注册表编辑、快捷方式创建与任务计划程序三种方案的原理、步骤与风险对比,帮助用户根据安全与效率需求选择最佳方案,实现一键高效管理。

sat99的博客 1274

ubuntu 安装node和npm

在ubuntu中经常需要用到node ,npm,因为npm基本会和node同时安装,所以只需要安装node即可。可以使用 nvm(Node Version Manager)来管理你的 Node.js 版本。

风吹落叶的博客 2292

【模板】快速幂

1.快速幂 2.快速幂取模

脚踏实地,仰望星空 785

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

quickmod(快速幂)和 POW(a的b次方)

快速幂模板 代码如下:#include&lt;iostream&gt;#include&lt;cstdio&gt;using namespace std;typedef long long ll;ll qmod(ll a,ll b,ll c){ ll ans=1; a=a%c; while(b) { if(b&amp;1) ans=(ans)*a%c; a=(a*a)%c; b&gt;&gt...

HPUZJH 1093

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

简单快速幂的使用方法

转载: https://baike.baidu.com/item/快速幂/5500243?fr=aladdin https://blog.youkuaiyun.com/qq_40129237/article/details/79883665 一、定义 顾名思义,快速幂就是快速算底数的n次幂。其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高。 二、原理 以下以求a的b次方来介绍 。 把...

qq_30534935的博客 705

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

快速幂和矩阵快速幂

一、快速幂 快速幂是一种用于快速计算出(因为太大,通常需要对一个数取模)的算法。因为较为基础,在此不多做讲解。主要原理:,,。因为指数在每次运算中都会缩小一半,时间复杂度为。代码如下。 int ksm(int a,int k,int p) { if(!k) return 1; int tmp=ksm(a,k/2,p); if(k%2) return tmp*tmp*a%p; retu...

pig_dog_baby的博客 5645

杭电 HDU ACM 1061 Rightmost Digit

Rightmost Digit   Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 37888    Accepted Submission(s): 14268     Problem Description Given a ...

舒哥的blog 3597

SDOI2017Round1解题报告!

ATP的第二篇解题报告!

ADP+Pi==ATP 2840

NOIP2016提高组解题报告!

ATP好像还有一个来星期就要语数英会考了?诶呀那还得恶补一个星期文化课= =

ADP+Pi==ATP 1365

[Codeforces348C]Subset Sums(乱搞)

ATP今天晚上要去超市买鸡排吃!

ADP+Pi==ATP 797
上一篇: [POJ3667]Hotel(线段树)
下一篇: [校内测试]Formula 1(BFS)
FromATP
博客等级 码龄10年 75粉丝 163原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值