首页 > 其他分享 >快速幂

快速幂

时间:2024-05-08 13:36:29浏览次数:13  
标签:int res LL long -- while 快速

快速幂

暴力解法

基本思路:对于n组数据,分别循环b次求出a^b mod p

#include <iostream>

using namespace std;
int main()
{
	int n;
    cin >> n;
    while(n -- )
    {
		int a, b, p;
        long long res = 1;
        cin >> a >> b >> p;
        while(b -- ) res = res * a % p;
        cout << res << endl;
    }
    return 0;
}

快速幂解法

image-20240501184650044

快速幂迭代版 O(N * logb)

#include <bits/stdc++.h>

using namespace std;

typedef long long LL;
int a, b, p;

LL qmi(int a, int b, int p)
{
    LL res = 1;
    while(b)
    {
        if(b & 1) res = res * a % p;
        b >>= 1;
        a = (LL)a * a % p;
    }
    return res;
}

int main()
{
   int n;
   cin >> n;
   while(n -- )
   {
       scanf("%d%d%d", &a, &b, &p);
       cout << qmi(a, b, p) << endl;
   }
    return 0;
}

image-20240501192339979

标签:int,res,LL,long,--,while,快速
From: https://www.cnblogs.com/hnu-hua/p/18179466

相关文章

  • 快速排序
    快速排序快排模板(以j为分界)快排属于分治算法,分治算法都有三步:1.分成子问题2.递归处理子问题3.子问题合并voidquick_sort(intq[],intl,intr){//递归的终止情况if(l>=r)return;//第一步:分成子问题 inti=l-1,j=r+1,x=q[1+r>>......
  • 如何快速掌握d3js
    D3.js是一个强大的JavaScript库,用于使用HTML、SVG和CSS生成数据可视化。学习D3.js需要一定的JavaScript、HTML和CSS基础。以下是一个为期四周的快速掌握D3.js的学习计划,分为基础入门、典型用法、原理理解以及进阶用法四个阶段。第一周:基础入门目标:掌握D3.js的......
  • 快速找出存(不存在)在某个(或多个)文件的文件夹
    首先,需要用到的这个工具:度娘网盘提取码:qwu2蓝奏云提取码:2r1z想要找出有下面这个文件存在的文件夹切换到批量文件复制版块,快捷键Ctrl+5右侧,搜索添加选定范围,勾选搜索文件夹、包含子目录下面就把要存在文件(夹)的条件拖入进去,就会出现路径,再点击开始搜索等待工具提示搜......
  • 构造照亮世界——快速沃尔什变换 (FWT)
    博客园我的博客快速沃尔什变换解决的卷积问题快速沃尔什变换(FWT)是解决这样一类卷积问题:\[c_i=\sum_{i=j\odotk}a_jb_k\]其中,\(\odot\)是位运算的一种。举个例子,给定数列\(a,b\),求:\[c_i=\sum_{j\oplusk=i}a_jb_k\]FWT的思想看到FWT的名字,我们可以联想到之前学过......
  • 通义灵码实战系列:一个新项目如何快速启动,如何维护遗留系统代码库?
    作者:别象进入2024年,AI热度持续上升,翻阅科技区的文章,AI可谓是军书十二卷,卷卷有爷名。而麦肯锡最近的研究报告显示,软件工程是AI影响最大的领域之一,AI已经成为了软件工程的必选项,也有研究称开发者每天的事务性工作可能占到了七成左右,比如单侧编写等,而这部分恰好是AI所擅长......
  • 通义灵码实战系列:一个新项目如何快速启动,如何维护遗留系统代码库?
    作者:别象进入2024年,AI热度持续上升,翻阅科技区的文章,AI可谓是军书十二卷,卷卷有爷名。而麦肯锡最近的研究报告显示,软件工程是AI影响最大的领域之一,AI已经成为了软件工程的必选项,也有研究称开发者每天的事务性工作可能占到了七成左右,比如单侧编写等,而这部分恰好是AI所擅长......
  • 快速查询自己哔哩哔哩账号的注册时间
    登录自己哔哩哔哩访问下面地址https://member.bilibili.com/x2/creative/h5/calendar/event?ts=0打开后,在网页中查找“jointime”,jointime,“加入时间”,如下图,“jointime”冒号后面的一串数字,是时间戳,时间戳转换把这串数字复制下来,在网上找一个“unix时间戳转换”工具,http:......
  • 如何根据二叉树遍历结果快速绘制二叉树
    一、已知前序遍历和中序遍历(1)前序遍历(根结点--->左子树--->右子树)ABDGHCEIF(2)中序遍历(左子树--->根结点--->右子树)GDHBAEICF注意:在最后连接二叉树时,注意先完玩左子树,再连右子树二、已知前后序遍历和中序遍历(1)后序遍历(左子树--->右......
  • 二叉树进阶:二叉搜索树、平衡二叉树、KD树(实现KNN算法的快速寻找k个邻居)
    二叉搜索树二叉搜索树又称为二叉排序树、二叉查找树。请记住,本篇所介绍的所有树,都是二叉搜索树,也就是说都用到了二分查找的思想。二叉搜索树的特征:每个结点的左结点都小于结点本身,右结点都大于结点本身。用中序遍历来遍历一棵二叉搜索树,结果必然是有序的。时间复杂度很低......
  • fastadmin快速入门
    配置安装官网下载https://www.fastadmin.net/download.html配置到public目录下面php版本>7.3伪静态如果没有配置伪静态可以访问不到前台<IfModulemod_rewrite.c>Options+FollowSymlinks-MultiviewsRewriteEngineOnRewriteCond%{REQUEST_FILENAME}!-dRe......