洛谷  取余运算||快速幂 1226

其实比起楼下的大佬们,我主要是多了些位运算和讲解。

想法一:

直接输出 pow(b,q)%k

嗯~~勇气可嘉,但是看一眼数据范围(长整型)就会意识到,这个方法也许一个点都过不了。

想法二:

while(q2--) ans=ans*b%k;

用代码说话吧(简单、粗暴、易懂),意想不到的是只有一个点没过。

快速幂

在每一次进行循环时,如果q为奇数,则b^q可以转为b^2的q/2次方乘以b。所以每一次进行b^2计算时,需要根据q是否为奇数决定是否在最终的结果上乘以b。

时间复杂度O(logn),完爆数据。

#include<bits/stdc++.h>
using namespace std;
long long b,b2,q,k,cur,ans=1;
int main()
{scanf("%lld%lld%lld",&b,&q,&k);cur=q;b2=b;while(cur){if(cur&1) ans=ans*b2%k;cur>>=1;b2=b2*b2%k;}printf("%lld^%lld mod %lld=%lld",b,q,k,ans%k);return 0;
}

 

转载于:https://www.cnblogs.com/yanyiming10243247/p/9237900.html

洛谷 1226 取余运算||快速幂相关推荐

  1. 洛谷——P1226 取余运算||快速幂

    P1226 取余运算||快速幂 题目描述 输入b,p,k的值,求b^p mod k的值.其中b,p,k*k为长整型数. 输入输出格式 输入格式: 三个整数b,p,k. 输出格式: 输出"b^ ...

  2. 取余运算||快速幂(洛谷-P1226)

    题目描述 输入b,p,k的值,求b^p mod k的值.其中b,p,k*k为长整型数. 输入输出格式 输入格式: 三个整数b,p,k. 输出格式: 输出"b^p mod k=s" ...

  3. 洛谷 P1226 【模板】快速幂||取余运算

    题目描述 给你三个整数 a,b,p,求 a^b mod p. 输入格式 输入只有一行三个整数,分别代表 a,b,p. 输出格式 输出一行一个字符串 a^b mod p=s,其中 a,b,p 分别为题目 ...

  4. 洛谷P1313 计算系数【快速幂+dp】

    P1313 计算系数 题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别 ...

  5. java取余位运算_java学习--高效的除模取余运算(n-1)hash

    没有测试过使用取余运算符和位运算符都做同一件事时的时间效率! 取余运算符% 如3除以2取余数 int a = a = a%; 结果为1 上面是传统的方式进行求余运算. 需要先将10进制转成2进制到内存 ...

  6. 数论练习(1)——取余运算(快速幂)

    1497 取余运算  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果 题目描述 Description 输入b,p,k的值,编程计算b ...

  7. java hash取余_为什么Java的hash表的长度一直是2的指数次幂?为什么这个(hash(h-1)=hash%h)位运算公式等价于取余运算?...

    1.什么是hash表? 答:简单回答散列表,在hash结构散列(分散)存放的一种数据集结构. 2.如何散列排布,如何均匀排布? 答:取余运算 3.Java中如何实现? 答:hash&(h-1) ...

  8. 信息学奥赛一本通 1326:【例7.5】 取余运算(mod)

    [题目链接] ybt 1326:[例7.5] 取余运算(mod) [题目考点] 1. 快速幂 [解题思路] 快速幂算法,用到了分治思想. 如果指数为奇数,那么结果乘以当前的底数,指数除以2(整除运算) ...

  9. python中的取余运算符是_python取余运算

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python中对负数求余的计算方法和求幂运算注意点python中对负数求余的计算 ...

最新文章

  1. Android chromium 1
  2. 教你如何更优惠的购买阿里云服务器?
  3. photoshop给绘制的形状使用渐变工具
  4. 利用tar 通过网络拷贝数据
  5. “评论王争夺赛”活动,第4期开始啦!
  6. 什么是UIScrollView
  7. Js中apply和Math.max()函数的问题及区别
  8. Socket编程中,阻塞与非阻塞的区别
  9. qq2008珊瑚虫版SL
  10. HTTP权威指南笔记
  11. 联想y430完全拆机图解_联想Y430P笔记本拆机加内存和SSD图文教程
  12. AAAI 2020 | 清华大学:借助BabelNet构建多语言义原知识库
  13. java调用腾讯企业邮箱给谷歌(gmail)邮箱发送邮件丢失或进入垃圾邮箱
  14. iOS界面--Tom猫的实现
  15. Android开发的各个领域发展前景?路线?规划未来看这篇
  16. win10下安装Debain Linux子系统
  17. 远程桌面连接不上是什么原因?怎么解决
  18. linux系统python3环境下安装pymysql模块
  19. XSD(XML Schema Definition)用法实例介绍以及C#使用xsd文件验证XML格式
  20. [递推式求解、多指针、前缀和]XATU第七届算法大赛

热门文章

  1. 如何才能优雅地书写JS代码
  2. Zynq7000系列之芯片引脚功能综述
  3. Hive的安装和配置
  4. Virtural Box 虚拟ubuntu 修改分辨率
  5. javaweb学习总结(四十五)——监听器(Listener)学习二
  6. Node.js Web 开发框架大全《中间件篇》
  7. node --- 使用mongoose连接mongoDB,并初始化所有的Schema
  8. jquery --- 网页选项卡
  9. Laravel中的Blade模版
  10. Spring Cloud Gateway 路由转发之After(Before)路由断言工厂使用