首页 > 其他分享 >第四讲 数学知识——快速幂

第四讲 数学知识——快速幂

时间:2023-12-09 15:55:34浏览次数:34  
标签:int res ll pmod 数学知识 include 快速 第四 equiv

AcWing 875. 快速幂

\(O(n\log_2b)\)

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
typedef long long ll;
int n, a, b, p;
int qp(int a, int b, int p) {
    int res = 1;
    while (b) {
        if (b & 1) res = (ll)res * a % p;
        a = (ll)a * a % p;
        b >>= 1;
    }
    return res;
}
int main() {
    cin >> n;
    while (n--) {
        cin >> a >> b >> p;
        cout << qp(a, b, p) << endl;
    }
    return 0;
}

AcWing 876. 快速幂求逆元

这题有个很强的性质 \(p\) 是质数。

根据费马小定理 \(b^{p-1}\equiv 1\pmod p\)

\(b^{-1}x\equiv 1\pmod p\)

我们要求出 \(x\)。

\[\begin{aligned}b^{p-1}&\equiv1\pmod p\\b\cdot b^{p-2}&\equiv \pmod p \end{aligned} \]

所以 \(x=b^{p-2}\)

证毕

标签:int,res,ll,pmod,数学知识,include,快速,第四,equiv
From: https://www.cnblogs.com/coldair7/p/17890945.html

相关文章

  • 第四讲 数学知识——欧拉函数
    AcWing873.欧拉函数欧拉函数的定义\(1\)~\(N\)中与\(N\)互质的数的个数被称为欧拉函数,记为\(\phi(N)\)。若在算数基本定理中,\(N=p_1^{a_1}p_2^{a_2}...p_{m}^{a_m}\),则:\(\phi(N)=N\times\frac{p_1-1}{p_1}\times\frac{p_2-1}{p_2}\times...\times\frac{p_m-1}{p_m}\)......
  • 第四天冲刺
    man-K【电子公文传输系统·团队项目】第五次作业冲刺总结第四天团队作业(五):冲刺总结成员完成工作情况成员主要任务工作量厉彦宏完善用户数据的相关内容3孔垂闽主干功能完善及sm4学习4农启镰完善用户数据的相关内容及sm2学习4王晨博前端网页,页面显示......
  • 详解十大经典排序算法(六):快速排序(QuickSort)
    算法原理分区(Partition):选择一个基准元素,将数组分为两个子数组,小于基准的放在左边,大于基2准的放在右边。递归排序:对左右两个子数组分别进行快速排序。合并:不需要实际的合并操作,因为在分解和递归排序阶段已经完成了排序。算法描述快速排序是一种基于分治思想的高效排序算法,由英国......
  • 第四讲 数学知识——约数
    AcWing869.试除法求约数时间复杂度\(O(n\sqrta)\)#include<iostream>#include<cstring>#include<algorithm>#include<vector>usingnamespacestd;vector<int>res;intn,a;intmain(){cin>>n;while(n--){......
  • 如何利用OPeNDAP快速读取格点数据——以GFS为例
    国内的气象圈子对于OPeNDAP这个单词应该是既熟悉又陌生,熟悉就熟悉在它出现频率很高,感觉好像哪哪儿都提到了它;而陌生就陌生在平时实际工作中好像又很少真正用过它。事实上OPeNDAP是一个可以极大提高格点数据传输和使用效率的“工具”,当初我第一次体验这个东西的时候就发出了“......
  • 第四讲 数学知识——质数
    AcWing866.试除法判定质数时间复杂度\(O(T\sqrta)\)#include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;boolisprime(intx){if(x<2)returnfalse;for(inti=2;i<=x/i;++i){if(x......
  • 简单封装PhpSpreadsheet,实现PHP快速导入、导出xlsx
    简单封装PhpSpreadsheet,实现PHP快速导入、导出xlsx<?phpnamespacexfstu\tools;usePhpOffice\PhpSpreadsheet\Spreadsheet;usePhpOffice\PhpSpreadsheet\Writer\Xlsx;usePhpOffice\PhpSpreadsheet\IOFactory;/***@methodexport(array$field,array$data)简单封......
  • Python算法——快速排序
    快速排序(QuickSort)是一种高效的分治排序算法,它选择一个基准元素,将数组分成两个子数组,小于基准的放在左边,大于基准的放在右边,然后递归地排序子数组。快速排序通常比冒泡排序和选择排序更高效,特别适用于大型数据集。本文将详细介绍快速排序的工作原理和Python实现。快速排序的工作原......
  • 用AntDesignBlazor快速开发一个权限系统
    写在前面:如果您是一个C#的后台开发人员,又或是C#的WPF开发人,如果想快速开发自己的网站系统,那么选择Blazor技术是太适合你不过了。(在没有Blazor之前,我会推荐Vue),尤其当我看到AntDesginBlazor(https://antblazor.com/zh-CN/)全家桶的时候,毫不犹豫就开始了我的愉快之旅。一、登录界面......
  • 快速区分webGL,webGPU,unity3D和UE4
    在3D图形渲染的渲染领域,很多友友们对上述概念傻傻分不清,站在前端开发角度,我用简单语言说下,结论在文章最后。一、四者都能进行3D图形渲染它们之间有一些区别,下面我将对它们进行简单的区分:   WebGPU:WebGPU是一种Web图形API,是基于底层的GPU硬件架构设计的,可以更好地利......