首页 > 编程语言 >算法进阶指南第一题 a^b

算法进阶指南第一题 a^b

时间:2024-08-04 10:26:22浏览次数:14  
标签:指南 10 const 进阶 1024 int ll 样例 算法

【模板】快速幂

题目描述

给你三个整数 a , b , p a,b,p a,b,p,求 a b   m o d   p a^b \bmod p abmodp。

输入格式

输入只有一行三个整数,分别代表 a , b , p a,b,p a,b,p。

输出格式

输出一行一个字符串 a^b mod p=s,其中 a , b , p a,b,p a,b,p 分别为题目给定的值, s s s 为运算结果。

样例 #1

样例输入 #1

2 10 9

样例输出 #1

2^10 mod 9=7

提示

样例解释

2 10 = 1024 2^{10} = 1024 210=1024, 1024   m o d   9 = 7 1024 \bmod 9 = 7 1024mod9=7。

数据规模与约定

对于 100 % 100\% 100% 的数据,保证 0 ≤ a , b < 2 31 0\le a,b < 2^{31} 0≤a,b<231, a + b > 0 a+b>0 a+b>0, 2 ≤ p < 2 31 2 \leq p \lt 2^{31} 2≤p<231。

模板题看代码即可:

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair<int, int>PII;
const int N=3e5+10;
const int MOD=9901;
const int INF=0X3F3F3F3F;
const int dx[]={-1,1,0,0,-1,-1,+1,+1};
const int dy[]={0,0,-1,1,-1,+1,-1,+1};
const int M = 1e6 + 10;

//快速幂

int t;

ll ksm(ll a, ll b, ll p)
{
	ll res = 1;
	while(b){
		if(b & 1) res = res * a % p;
		a = a * a % p;
		b >>= 1;
	}
	return res % p;
}
int main()
{
	ll a, b, p;
	cin >> a >> b >> p;
	cout << ksm(a, b, p) << endl;
	return 0;
}

标签:指南,10,const,进阶,1024,int,ll,样例,算法
From: https://blog.csdn.net/2301_80882026/article/details/140865437

相关文章

  • 【Redis 进阶】哨兵 Sentinel(重点理解流程和原理)
    Redis的主从复制模式下,一旦主节点由于故障不能提供服务,需要人工进行主从切换,同时大量的客户端需要被通知切换到新的主节点上,对于上了一定规模的应用来说,这种方案是无法接受的,于是Redis从2.8开始提供了RedisSentinel(哨兵)加个来解决这个问题。一、基本概念由于对Red......
  • 代码随想录算法训练营day03|203.移除链表元素,707.设计链表,206.反转链表
    203.移除链表元素题目链接:https://leetcode.cn/problems/remove-linked-list-elements/description/我的代码(分头节点和中间节点两种情况操作):/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val......
  • Spark MLlib模型—决策树系列算法
    文章目录SparkMLlib模型—决策树系列算法决策树系列算法随机森林(RandomForest)GBDT(Gradient-boostedDecisionTrees)总结SparkMLlib模型—决策树系列算法前面我们重点介绍了机器学习中的特征工程,以及SparkMLlib框架支持的特征处理函数。基于线......
  • 【技术精粹】LambdaQueryWrapper实战指南:MyBatis-Plus从入门到精通(上:入门、基础用法
    文章目录JavaMyBatis-PlusLambdaQueryWrapper深入理解与实战应用前言第一部分:MyBatis-Plus入门1.1MyBatis-Plus是什么?1.2快速上手第二部分:LambdaQueryWrapper基础2.1LambdaQueryWrapper概览2.2LambdaQueryWrapper使用入门第三部分:LambdaQueryWrapper高级......
  • MySQL进阶(查询、备份与恢复)
    一、多表联合查询在关系型数据库中,表与表之间是有联系的,所以在实际应用中,经常使用多表查询。多表查询就是同时查询两个或两个以上的表。在MySQL中,多表查询主要有交叉连接、内连接、外连接、分组查询与子查询等5种。1、交叉连接(CROSSJOIN)笛卡尔积交叉连接(CROSSJO......
  • 灰狼优化算法(GWO)与长短期记忆网络(LSTM)结合的预测模型(GWO-LSTM)及其Python和MATLAB实现
    ####一、背景在现代数据科学和人工智能领域,预测模型的准确性和效率是研究者和工程师不断追求的目标,尤其是在时间序列预测、金融市场分析、气象预测等领域。长短期记忆(LSTM)网络是一种解决传统递归神经网络(RNN)在长序列学习中存在的梯度消失和爆炸问题的有效模型。LSTM能够保持......
  • 灰狼优化算法(GWO)与门控循环单元(GRU)结合的预测模型(GWO-GRU)及其Python和MATLAB实现
    ####一、背景深度学习已成为解决复杂时序数据预测问题的重要工具。在众多神经网络架构中,门控循环单元(GatedRecurrentUnit,GRU)凭借其在捕捉时间序列数据中的长程依赖性和相对较低的计算复杂度而受到广泛关注。此外,优化算法在深度学习模型的训练中扮演着至关重要的角色。灰......
  • 2024“钉耙编程”中国大学生算法设计超级联赛(4) 3、5、9
    题单:2024“钉耙编程”中国大学生算法设计超级联赛(4)时间:07_2905多层血条思路就是模拟,上层和下层分开表示,如果dmg大于血条长度就全都置0,反之就要从上层开始置\('.'\)代码stringblood="ABCDE";stringstr[3];voidsolve(){cin>>n>>m>>hp>>dmg;str[0]......
  • MySQL数据分析进阶(八)存储过程
    ※食用指南:文章内容为‘CodeWithMosh’SQL进阶教程系列学习笔记,笔记整理比较粗糙,主要目的自存为主,记录完整的学习过程。(图片超级多,慎看!)【中字】SQL进阶教程|史上最易懂SQL教程!10小时零基础成长SQL大师!!https://www.bilibili.com/video/BV1UE41147KC/?spm_id_from=333.1007.0.......
  • DAY3 高精度算法(+,-,*,/)
    本文将要简单介绍acwing中的高精度算法,高精度指的就是有成百上千位的数进行运算,远远超出当前编程语言中的数据范围。\四个运算中的共同点都是数据位数较长(上千位),处理的方法都是将数据转化为字符串,再将字符串存进vector容器中,根据运算的基本特征进行处理首先介绍高精度加法:题......