ll qpow(ll a,ll b)
{ll ans=1;while(b){if(b&1) ans=(ans*a)%mod;a=(a*a)%mod;b>>=1;}return ans;
}

快速乘运算

ll mult(ll a,ll b,ll mod)
{a%=mod,b%=mod;ll s=a,sum=0;while(b){if (b&1){sum+=s;if (sum>=mod)sum-=mod;}b>>=1;s<<=1;if (s>=mod)s-=mod;}return sum;
}

相互结合:

ll mult(ll a,ll b,ll mod)
{a%=mod,b%=mod;ll s=a,sum=0;while(b){if (b&1){sum+=s;if (sum>=mod)sum-=mod;}b>>=1;s<<=1;if (s>=mod)s-=mod;}return sum;
}ll qpow(ll a,ll b)
{ll ans=1;while(b){if(b&1) ans=(ans*a)%mod;a=(mult(a,a))%mod;b>>=1;}return ans;
}

转载于:https://www.cnblogs.com/wangtao971115/p/10358265.html

快速幂运算and 快速乘运算相关推荐

  1. 快速幂、矩阵快速幂、快速乘法

    快速幂 快速幂是我们经常用到的一种算法,快速幂顾名思义就是快速的幂运算.我们在很多题目中都会遇到幂运算,但是在指数很大的时候,我们如果用for或者是pow就会超时,这时候就用到了快速幂. 快速幂的原理 ...

  2. 快速幂或者矩阵快速幂

    快速幂或者矩阵快速幂在算大指数次方时是很高效的,他的基本原理是二进制,下面的A可以是一个数也可以是一个矩阵(本文特指方阵),若是数就是快速幂算法,若是矩阵就是矩阵快速幂算法,用c++只需把矩阵设成一个 ...

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

    前言 二分幂,快速幂,矩阵快速幂在算大指数次方时是很高效的. 求 a^n 的值是多少?n是1到10^18次方的一个整数. 求一个数的n次方,朴素的算法就是直接for循环,一遍一遍的乘,a*a*a*a* ...

  4. 数论-快速幂、矩阵快速幂、慢速乘

    文章目录 快速幂 矩阵快速幂 慢速乘 例题 HDU-2817 HDU-3117 XUJC-1395 快速幂 首先幂运算 a n a^n an就是 n n n个 a a a相乘,我们可以直接调用库函数 ...

  5. 快速幂和矩阵快速幂详解+模板

    1.快速幂 一般的,我们都知道求只需要连续乘3次2就能得到,那么等于多少呢?其实这个一很简单,不就是13个2相乘吗,连续乘13次2就行了.那么,呢? 是不是要连续乘100次.1000次,我们将这类问题 ...

  6. 数论(二)快速幂 (矩阵快速幂)等比数列求和 最大公因数和最小公倍数

    快速幂 1.快速幂用于快速计算a的b次方,时间复杂度是O(log2b) 2.用于a和b比较大小的情况,常用的快速幂是带模快速幂 3.分析一个例子: 3 15=?  15=(1111)2 3e1 * ...

  7. 快速幂(一个简单快速适合整数幂次的运算)

    引文 快速幂为什么快速呢,应为它将幂次方O(N)的复杂度降到了O(log2N)O(N)的复杂度降到了O(log_2^N)O(N)的复杂度降到了O(log2N​),主要思想是将指数转换成二进制表示,然后 ...

  8. python【数据结构与算法】快速幂and矩阵快速幂取模(看不懂你来打我)

    文章目录 1 解释快速幂 2 代码(这里就不考虑指数为小于0的情况了) 3 下面是矩阵快速幂,区别只是底数换成了矩阵 1 解释快速幂 传统的幂运算,是对底数进行连乘,时间复杂度为o(n),例如:2^1 ...

  9. 【算法分析与设计】快速幂算法与快速幂取模算法

    文章目录 快速幂算法 算法分析 算法实现 位运算优化 BigInteger支持 快速幂取模算法 算法优点 算法推导 算法实现 BigInteger支持 本文完整代码实现(Java语言描述) 快速幂算法 ...

  10. 快速幂与矩阵快速幂学习笔记

    首先附上我学习快速幂的链接 https://blog.csdn.net/qq_19782019/article/details/85621386 并从中摘抄了一些有用的东西记录下来作为总结 1.&qu ...

最新文章

  1. 用了这么久 IDEA,你竟然不知道有个功能叫自动补全!
  2. 反弹模型(bounce model)----adot, H, Hdot变化图
  3. 请人安装linux系统,我想安装linux操作系统,请指导一下
  4. python项目设计-Python:实际项目中抽象出的小项目设计
  5. 微信小程序篇(微信小程序的支付)
  6. leetcode1027
  7. python中的编码问题
  8. php随机显示怎么,PHP 随机显示
  9. 使用git配合idea使用oschina代码仓库初级教程
  10. JavaScript中defer 和onload的执行顺序
  11. IIS6.0相关漏洞复现
  12. C语言递归函数 计算学生年龄
  13. 微信小程序需要用到服务器吗?
  14. 基于javaweb的大学生兼职系统(java+springboot+jsp+mysql)
  15. 华为视频会议终端TE40配置
  16. js json字符串 转为json数组
  17. Python函数参数之*与**用法详解
  18. fpu测试_浮点运算单元FPU能给电机控制带来什么?
  19. .net 可选择的转型路径
  20. 中文/英文 文本相似度/文本推理/文本匹配数据集汇总(SNLI、MSRP、MultiNLI、Quora、SciTail、SICK、STS、CCKS2018、LCQMC、OCNLI、XNLI)

热门文章

  1. 基于Linux的视频传输系统(上大学时參加的一个大赛的论文)
  2. 关于Linux静态库和动态库的分析
  3. 【转载】Pytorch在加载模型参数时指定设备
  4. 白话hash和数字签名,保证你看得懂
  5. python添加数组元素_Python列表附录–如何向数组添加元素,并附带示例说明
  6. 二进制搜索树_二进制搜索树数据结构举例说明
  7. html中的两种标记,如何在html选项标记中实现两种不同的对齐?
  8. 数据结构 算法与应用C 语言描述第六章,数据结构算法与应用-C语言描述002.pdf
  9. (C++)CSP 201712-2 游戏
  10. gitee查看当前账号_upic+gitee图床,自由书写Markdown