首页 > 其他分享 >洛谷 P1226 快速幂

洛谷 P1226 快速幂

时间:2024-06-16 12:54:31浏览次数:13  
标签:洛谷 17 int pow ll P1226 res 快速

题目链接:快速幂



思路

       简单快速幂模板。a ^ 17 = (a ^ 2) ^ 8 * a,此时pow()中的y就可以视为17 -> 8(y >>= 1),pow()中的x就是底数a -> a ^ 2(x *= x),结果res可以视为在循环时多出来的后边乘的a,1 -> a(res *= x),简单代数推导就会发现y = 1的时候,会有res *= x此时的x为a ^ 16,则返回的res就是2 ^ 17。

代码

#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
#define ll long long

ll pow(ll x, ll y, ll p) {
  ll res = 1;
  while (y) {
    if (y % 2) {
      res *= x;
      res %= p;
    }
    y >>= 1;
    x *= x;
    x %= p;
  }
  return res;
}

int main() {
  ll a, b, p;
  cin >> a >> b >> p;

  cout << a << "^" << b << " mod " << p << "=" << pow(a, b, p);
  return 0;
}

标签:洛谷,17,int,pow,ll,P1226,res,快速
From: https://www.cnblogs.com/againss/p/18250491

相关文章

  • 洛谷 P5595 歌唱比赛
    题目链接:歌唱比赛思路    根据题目分析可得,假如小x的点赞数是123111,小y的点赞数是234111,则字符串的第4为到第6位结果都为Z,分别为对比(111,111),(11,11),(1,1),字符串的第三位为Y,为对比(3111,4111),则结果字符串为YYYZZZ。    此时可以轻易判断出字符串中第一个Z后面的所有字母......
  • 如何从vcf文件中快速提取基因型GT?
    如题,如何从vcf文件中快速提取基因型Genotype,得到基因型表格文件?vcf作为标准的存储变异的文件格式。虽是标准格式,但可扩展性极强,变异属性可随意添加,真是很妙的设计!其实vcf格式和vcftools软件文章发表也不过13年而已。基因型矩阵,类似于HapMap格式,市场上大多数芯片也是这种。比如,......
  • SpringAI快速上手
    一、导入依赖 镜像(导入maven依赖)<repositories><repository><id>spring-snapshots</id><name>SpringSnapshots</name><url>https://repo.spring.io/snapshot</url><releases>......
  • Python 潮流周刊#56:NumPy 2.0 里更快速的字符串函数(摘要)
    本周刊由Python猫出品,精心筛选国内外的250+信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进Python技术,并增长职业和副业的收入。本期周刊分享了12篇文章,12个开源项目,赠书5本,全文2100字。(PS.全新的赠......
  • Golang 百题(实战快速掌握语法)_1
    整形转字符串类型实验介绍本实验将展示三种方法来实现整形类型转字符串类型。知识点strconvfmtItoa函数代码实例Go语言中strconv包的itoa函数输入一个int类型,返回转换后的字符串。下面是一个例子。packagemainimport("fmt""strconv")funcmai......
  • 如何快速批量申请SSL证书
    假如您手头拥有1千个域名,并且打算为每一个域名搭建网站,那么在当前的网络环境下,您必须确保这些网站通过https的方式提供服务。这意味着,您将为每一个域名申请SSL证书,以确保网站数据传输的安全性和可信度。那么,您该如何着手申请这些SSL证书呢?一、一般方案1、国内云平台免费SSL额度......
  • 洛谷P8807 [蓝桥杯 2022 国 C] 取模
    题目:解读(思路与分析):题目总结:对于给定的整数n和范围m,要找到两个不同的x和y,它们除以n后的余数相等。思路:对于每组给出的n,m询问,可以通过遍历范围从1到m的所有可能的j,并计算n对j取模的余数。使用一个集合来存储已经出现过的余数,如果当前余数已经存在于集......
  • 快速提高MySQL查询效率的实用方法
    快速提高MySQL查询效率的实用方法包括以下几个方面,下面将详细列举并解释:使用合适的索引索引可以大大提高查询的速度,允许数据库系统快速定位和访问特定的数据行。在经常用于WHERE子句、JOIN操作和ORDERBY排序的列上创建索引。避免创建过多的索引,因为索引也会占用存储空间......
  • 快速排序
    #include<bits/stdc++.h>usingnamespacestd;voidhappy(inta[1000],intn,intm){inti=m,j=n,t=a[m];if(i>j)return;while(i!=j){while(a[j]>=t&&i<j){j--;}while(a[i]<=t&&......
  • FastAPI快速入门2 Pydantic&错误处理
    2.1Pydantic简介Pydantic使用python类型注解进行数据验证和配置管理。这是一款能让您更精确地处理数据结构的工具。例如,到目前为止,我们一直依赖字典来定义项目中的典型配方。有了Pydantic,我们可以这样定义配方:frompydanticimportBaseModelclassRecipe(BaseModel):id......