Acwing---875. 快速幂

快速幂

  • 1.题目
  • 2.基本思想
  • 3.代码实现

1.题目

给定 n n n a i ai ai, b i bi bi, p i pi pi,对于每组数据,求出 abii m o d mod mod pi 的值。

输入格式
第一行包含整数 n n n

接下来 n n n 行,每行包含三个整数 a i ai ai, b i bi bi, p i pi pi

输出格式
对于每组数据,输出一个结果,表示 abii m o d mod mod pi 的值。

每个结果占一行。

数据范围
1 ≤ n ≤ 100000 , 1≤n≤100000, 1n100000,

1 ≤ a i , b i , p i ≤ 2 × 1 0 9 1≤ai,bi,pi≤2×10^9 1ai,bi,pi2×109

输入样例:

2
3 2 5
4 3 9

输出样例:

4
1

2.基本思想

快速幂解法 O(n∗logb)

基本思路:
在这里插入图片描述
注意:

  • b & 1就是判断b的二进制表示中第0位上的数是否为1,若为1,b&1=true,反之b&1=false
  • b & 1也可以用来判断奇数和偶数,b&1=true时为奇数,反之b&1=false时为偶数

3.代码实现

import java.util.Scanner;public class Main {static long res;public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();while (n-- > 0) {long ai = sc.nextInt(), bi = sc.nextInt(), pi = sc.nextInt();pmi(ai, bi, pi);}}private static void pmi(long ai, long bi, long pi) {res = 1;while (bi != 0) {//最后求出的幂结果实际上就是在变化过程中所有当指数为奇数时底数的乘积。if (bi % 2 == 1) res = res * ai % pi;bi /= 2;ai = ai * ai % pi;}System.out.println(res % pi);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/473863.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode-102. 二叉树的层序遍历

今天的情人节和树过了...... 题目: 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[…

【机器学习笔记】 9 集成学习

集成学习方法概述 Bagging 从训练集中进行子抽样组成每个基模型所需要的子训练集,对所有基模型预测的结果进行综合产生最终的预测结果: 假设一个班级每个人的成绩都不太好,每个人单独做的考卷分数都不高,但每个人都把自己会做的…

Atmel ATSHA204应用总结

1 ACES软件安装 Atmel Crypto Evaluation Studio (ACES) https://www.microchip.com/DevelopmentTools/ProductDetails/PartNO/Atmel%20Crypto%20%20Studio%20(ACES) 2 基本概念 ACES CE:Atmel Crypto Evalution Studio Configuration Environment(基于加…

L2-021 点赞狂魔

一、题目 二、解题思路 统计每个人点赞的不同标签的数量:每行列出一位用户的点赞标签,这些标签可能有重复的,所以将用户的点赞标签存放在 set 里,通过 size() 函数获得点赞的不同标签的数量;结构体包括用户的信息&…

Uniapp真机调试没有检测到设备,请插入设备或启动模拟器后刷新再试

最近用HbuilderX开发遇到了一个问题,之前插上手机就能调试,但最近再写app的时候,插上手机,也打开了开发者模式,但就是检测不到设备。 后来发现是要打开MIDI模式。vivo手机路径为:系统管理与升级->开发者…

VS2022创建控制台应用程序后没有Main了,该如何解决?

用VS2022创建一个控制台应用后,没有名称空间和Main函数了,只有一个WriteLine,如下所示。 // See https://aka.ms/new-console-template for more information Console.WriteLine("Hello, World!");首先说明一下原因,在…

元器件焊盘的PCB处理方式分析与总结

对于高速信号走线的特性阻抗,都需要按照实际要求进行精度控制,所以,任何因设计因素带来的阻抗波动都应该进行优化,如下图所示,为一个12层板设计中的50Ω微带走线,需要在走线之上放置电感; 但是&…

django定时任务(django-crontab)

目录 一:安装django-crontab: 二:添加django_crontab到你的INSTALLED_APPS设置: 三:运行crontab命令来创建或更新cron作业: 四:定义你的cron作业 五:创建你的管理命令&#xff…

RCS系统之:基础算法

设计仓库机器人的控制管理系统涉及到路径规划、任务分配、库存管理、通信系统等方面。以下是一个基本的仓库机器人控制管理系统方案的概述: 路径规划:设计一个路径规划系统,用于确定机器人在仓库内的最佳行驶路径,以最大程度地提…

vue3之setup的基本使用

setup是一个全新的配置项,值是一个函数,既然是配置项,是否与data、methods是兄弟? 没错,确实是兄弟关系,只不过到了vue3,就不怎么使用data这些配置项,会使用setup,让我为…

02 c++入门

目录 c关键字命名空间c输入&输出缺省参数函数重载引用内联函数auto关键字(c11)基于范围的for循环(c11)指针空值—nullptr(c11) 0. 本节知识点安排目的 c是在c的基础上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式等…

(07)Hive——窗口函数详解

一、 窗口函数知识点 1.1 窗户函数的定义 窗口函数可以拆分为【窗口函数】。窗口函数官网指路: LanguageManual WindowingAndAnalytics - Apache Hive - Apache Software Foundationhttps://cwiki.apache.org/confluence/display/Hive/LanguageManual%20Windowing…