洛谷例题

推荐自行脑补:百度百科

如果  ,那么 ;

前言:快速幂就是快速算底数的n次幂。其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高。

拿题目样例

Input :2 10 9

Output:7

210 % 9 = 7 没毛病

问题不大 那么真正的问题是怎么算这个

普通幂:废物过程 可你有没有发现这个很烦?

可是 算到264就炸了qwq (__int128啥的给我走开)

b=2,p=10,k=9
2^1=2 2%9=2
2^2=4 4%9=4
2^3=8 8%9=8
2^4=16 16%9=7
2^5=32 32%9=5
2^6=64 64%9=1
2^7=128 128%9=2
2^8=256 256%9=4
2^9=512 512%9=8
2^10=1024 1024%9=7

递推幂:甚至还可以在优化 成 bk-1%p*b

其实也就是递推 这样就好一丢丢吧 大数字的时候可以这样暂且优化一下(至少不容易爆精度)

也是比较有实用性的 orz 这样就可以得到

a[] = b ;
for (register int i=;i<=k;i++) a[i] = a[i-] % p * b ;

这样不就是个递推了吗 海星 用数组只是好理解 而且不太会爆精度 不知道多少分(应该比较优秀的分数吧)

b=,p=,k=
%=
2*2%=
4*2%=
8*2%=
7*2%=
5*2%=
1*2%=2
2*2%9=4
4*2%9=8
8*2%9=7

看图 其实有一部分是循环节(我还复制了) 可以通过循环节来处理加速(不建议)万一没有循环节呢

mod:是时候叫出快速幂(超级飞侠)来帮忙了 每次遇到困难...(不玩梗了)


快速幂:

快速幂代码

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
inline LL quickpow (LL x , LL y , LL mod){ LL ans = ;//自定义函数可作为快速幂模型
for ( ; y ; x = x * x % mod , y >>= ) y & ? ans = ans * x % mod : ;
return (LL) ans % mod ;
}
signed main() {
LL b,k,p;
cin >> b >> k >> p ;
cout << b << '^' << k << " mod " << p << '=' << quickpow(b , k , p) << endl ;
return ;
}

这个代码可以作为模板使用

(背就完事了哪那么多话)

最新文章

  1. nginx配置反向代理或跳转出现400问题处理记录
  2. Linux学习之路&mdash;Linux文件与目录管理
  3. 基本概率分布Basic Concept of Probability Distributions 5: Hypergemometric Distribution
  4. ubuntu修改源列表sourcelist的方法
  5. 用JSON-server模拟REST API(三) 进阶使用
  6. Android Packaging Problem
  7. VC++ MFC橡皮筋技术
  8. Mvc中把list从View传入Controller
  9. 搭建yum源服务器
  10. VS2010开发环境最佳字体及配色方法
  11. Dataset
  12. MVC自学第一课
  13. HTTPS 加密算法原理机制解析
  14. android 构建数据库SQLite
  15. 初探nginx负载均衡集群
  16. nmon用法
  17. Asp.Net SignalR 集群会遇到的问题
  18. 深入浅出的webpack构建工具--webpack4+vue搭建环境 (十三)
  19. 《Linux内核设计与分析》第六周读书笔记——第三章
  20. js手机适配

热门文章

  1. 2018.11.5 PION模拟赛
  2. appleid
  3. PHP的类中的常量,静态变量的问题。
  4. eclipse maven 插件的安装和配置
  5. Cocos2d-x 3.2 Lua演示样例CurrentLanguageTest(当前语言环境)
  6. 2016/04/26 权限 数据库mydb2 五个表 分别是 1,用户 2,角色 3,权限 4,用户对应的角色 5,角色对应的权限
  7. 我要开启vue2新征程。
  8. 系统队列中的Windows错误报告
  9. set 去重 会 破坏 原有list 的元素相对位置
  10. how to create modals with Bootstrap