HDU 5187 (快速幂 + 快速乘) == 高精度快速幂
时间:2020-09-16
本文章向大家介绍HDU 5187 (快速幂 + 快速乘) == 高精度快速幂,主要包括HDU 5187 (快速幂 + 快速乘) == 高精度快速幂使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
这个找规律可以发现 结果是 2^n-2 ,但是直接用快速幂的,精度会爆掉(WA了两次),所以快速幂里面的乘法部分用快速乘来展开,解决掉精度的问题
#include<bits/stdc++.h> using namespace std; typedef long long ll; ll qmul(ll a , ll b, ll mod) { ll ans = 0 ; while(b){ if(b&1) ans = (ans + a) % mod; a += a; a%=mod; b>>=1; } return ans; } ll qpow(ll a , ll b , ll mod) { ll ans = 1 , base = a; while(b){ if(b&1) ans = qmul(ans,base,mod) % mod ; base = qmul(base,base,mod); base %= mod; b>>=1; } return ans%mod; } int main() { ll n , mod; while(cin>>n>>mod){ ll temp = qpow(2,n,mod); if(mod==1){ cout<<"0"<<endl; continue; } if(temp == 0 ){ cout<<mod-2<<endl; }else if(temp == 1 ){ cout<<mod-1<<endl; }else{ cout<<temp-2<<endl; } } return 0; }
原文地址:https://www.cnblogs.com/Li-ningning/p/13680167.html
- 备库查询导致的ORA-01110错误及修复(r8笔记第67天)
- SQL客户端DBvisualize直接导入数据出现中文乱码
- Python基础整理操作积累
- 让AI给颜值打分?应该是最公正的裁判了!
- orion的简单测试 (r8笔记第75天)
- golang ftp客户端示例 支持断点续传
- python 网页特征提取XPATH(两天玩转) 第一天
- 和开发同学讨论的一个技术问题(r8笔记第73天)
- 剖析Oracle中oerr命令(r8笔记第70天)
- 甜品店切蛋糕问题(动态规划,Go语言实现)
- SQL—复制表结构及其数据
- python连接SQL报错:1366, "Incorrect string value: '\xF0\x9F\x98\x81'
- PCIE的简单配置(r8笔记第82天)
- 7个深度神经网络可视化工具,不可错过!
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android 多线程的实现方法总结
- Android编程之SQLite数据库操作方法详解
- 浅谈android组件化之ARouter简单使用
- Android ScrollView实现下拉弹回动画效果
- Android实现用文字生成图片的示例代码
- Android bindservice失败解决方法
- Android 悬浮窗权限各机型各系统适配大全(总结)
- Android中Fragment相互切换间不被回收的实现方法
- Android手机管理工具类详解
- 通过代码学Sutton强化学习第四章动态规划
- android通过okhttpClient下载网页内容的实例代码
- Android自定义键盘的实现(数字键盘和字母键盘)
- Android iconify 使用详解
- XRecyclerView实现下拉刷新、滚动到底部加载更多等功能
- 浅析Android 快速实现图片压缩与上传功能