首页 > 其他分享 >2023.3.10

2023.3.10

时间:2023-03-10 19:45:29浏览次数:44  
标签:10 ll long 2023.3 ans mod lld

这几天讲的倍增捏(一开始以优化 dp 为主,现在几乎纯倍增,6)。然后发现我不会快速幂。


Luogu P1226.【模板】快速幂||取余运算 传送门

我们知道任意整数可以表示成若干个 2 的次幂项的和。现在要求一个数的幂,那么我们可以将所需要求的幂转化为 2 的次幂项之和,即转化为二进制来计算。每次判断这个位置的二进制是 1 还是 0,进行相应的乘法计算。数学不好,直观的看一眼时间复杂度效率的差异:暴力做法是 log(n) 的,快速幂算法是 log2n 的,速度一下快了很多。

 1 #include<bits/stdc++.h>
 2 #define ll long long
 3 using namespace std;
 4 ll ans = 1;
 5 ll a, b, p;
 6 ll aa, bb, mod;
 7 int main()
 8 {
 9     scanf("%lld%lld%lld", &a, &b, &p);
10     aa = a;
11     bb = b;
12     mod = p;
13     while(b)
14     {
15         if(b % 2) ans = ans * a % p;
16         a = a * a % p;
17         b /= 2;
18     }
19     printf("%lld", ans % p);
20     return 0;
21 }
快速幂模板

最后记得输出之前再取模一次,一开始被你校 oj 上的数据卡住了:123456789 0 1。(多组数据别忘了清空,不开 long long 见祖宗。)

 

标签:10,ll,long,2023.3,ans,mod,lld
From: https://www.cnblogs.com/Moyyer-my/p/17204504.html

相关文章

  • 10分钟快速掌握分布式版本控制系统GIT命令集【形成知识体系篇】
    任务要求要求全部使用git命令实现1、创建本地仓库,项目名称为hniu_site2、在仓库下创建多级(目录)文件夹cn/hniu/班级名称(例如软件2108,cn/hniu/rj2108)3、在班级名称下新......
  • python 基础230310
    变量的命名规则:字母数字下划线/不能以数字开头/不能使用关键字/不能使用中文,要肯有描述性,不能过长驼峰体:AgeOfOld下划线:age_of_old_boy变量指向:变量在......
  • 利民发布 HR-10 2280 M.2 SSD 散热器,搭载双 AGHP 逆重力热管
    3月10日消息,利民现已发布新款HR-102280M.2SSD散热器,售价79元。据官方介绍,Thermalright利民HR-102280散热器采用了高质感电镀回流焊技术,采用大面积散热片,内......
  • 2023-03-10 Java中使用ArrayDeque实现栈和队列
    栈和队列的实现实际上完全可以用JDK自带的类ArrayDeque来实现作为队列使用publicabstractbooleanadd(EparamE);//加入元素到队尾publicabstractbooleanoffe......
  • ES6-ES11 ES10-Symbol.prototype.description
    原视频<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title......
  • 10进制小数如何转化为2进制
    方法:乘二取整法,将10进制数字的小数部分乘以2,取得到数字的整数部位作为小数部分二进制的第一位,一直到小数为0为止例如:8.125,整数部分的二进制为1000,小数部分为0.125,0.125第一......
  • ES6-ES11 ES10字符串方法扩展-trimStart-trimEnd
    原视频<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title......
  • ES6-ES11 ES10数组方法扩展-flat与flatMap
    原视频<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title......
  • C/C++小学生测验[2023-03-10]
    C/C++小学生测验[2023-03-10]题目2:小学生测验面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。功能要求:(1)进入测试之前先输入用户名、密码登录,......
  • 3.10 滴水复习6
    1.全局变量与局部变量全局变量程序启动即分配地址一直在不销毁局部变量没有固定地址所在函数体结束后会被销毁2.函数参数根据内外平栈代码查看问题寄存器传......