当前位置: 首页 > news >正文

企业商务网免费seo公司

企业商务网,免费seo公司,默认网站 域名 网站绑定,固始网站建设题目 求 a a a 的 b b b 次方对 p p p 取模的值。 输入格式 三个整数 a , b , p , a,b,p, a,b,p, 在同一行用空格隔开。 输出格式 输出一个整数,表示 a^b mod p 的值。 数据范围 0 ≤ a , b ≤ 1 0 9 0≤a,b≤10^9 0≤a,b≤109 1 ≤ p ≤ 1 0 9 1≤p≤10^…

题目

a a a b b b 次方对 p p p 取模的值。

输入格式

三个整数 a , b , p , a,b,p, a,b,p, 在同一行用空格隔开。

输出格式

输出一个整数,表示 a^b mod p 的值。

数据范围

0 ≤ a , b ≤ 1 0 9 0≤a,b≤10^9 0a,b109

1 ≤ p ≤ 1 0 9 1≤p≤10^9 1p109

输入样例

3 2 7

输出样例

2

思路

快速幂

任何一个整数都可以唯一表示为若干指数不重复的 2 的次幂的和。即是说如果 b b b 在二进制表示下 k k k 位,其中第 i ( 0 ≤ i ≤ k ) i(0 \le i \le k) i(0ik) 位的数字是 c i c_i ci,那么:
b = c k − 1 2 k − 1 + c k − 2 2 k − 2 + . . . + c 0 2 0 b = c_{k-1}2^{k-1} + c_{k-2}2^{k-2} + ... + c_0 2^0 b=ck12k1+ck22k2+...+c020
于是
a b = a c k − 1 × 2 k − 1 ∗ a c k − 2 × 2 k − 2 ∗ . . . ∗ a c 0 × 2 0 a ^b = a^{c_{k-1}\times2^{k-1}} * a^{c_{k-2} \times 2^{k-2}} * ... * a^{c_0 \times 2^0} ab=ack1×2k1ack2×2k2...ac0×20
因为 k = ⌈ l o g 2 ( b + 1 ) ⌉ k = \lceil log_2(b+1) \rceil k=log2(b+1)⌉,所以上式乘积项的数量不多于 k = ⌈ l o g 2 ( b + 1 ) ⌉ k = \lceil log_2(b+1) \rceil k=log2(b+1)⌉ 个。又因为:
a 2 i = ( a 2 i − 1 ) 2 a^{2^i} = (a^{2^{i-1}})^2 a2i=(a2i1)2
所以可以通过 k k k 次递归求出每个乘积项,当 c i = 1 c_i = 1 ci=1 时,将该乘积项累积到答案中。KaTeX parse error: Expected 'EOF', got '&' at position 3: b &̲ 1 运算可以取出 b b b 在二进制表示下的最低位,而 b > > 1 b >> 1 b>>1 运算可以舍去最低位,在递推过程中将二者集合,就可以遍历 b b b 在二进制表示下的所有数位 c i c_i ci

整个算法的时间复杂度为 O ( l o g 2 b ) O(log_2b) O(log2b)

代码

#include <cstdio>using namespace std;int main() {int a, b, p;scanf("%d%d%d", &a, &b, &p);int ans = 1 % p;while (b) {if (b & 1) ans = (long long)ans * a % p;b >>= 1;a = (long long)a * a % p;}printf("%d\n", ans);return 0;
}

注意

在 C++ 语言中,两个数值执行算术运算时,以参与运算的最高数值类型为基准,与保存结果的变量类型无关。换言之,虽然两个 32 位整数的乘积可能超过 int 类型的表示范围,但是 CPU 只会用 1 个 32 位寄存器保存结果,造成越界现象。因此,必须把其中一个数强制转换成 64 位整数类型 long long 参与运算,从而得到正确的结果。最终对 p p p 取模以后,执行赋值操作时,该结果会被隐式转换成 int 存回 ans 中。

http://www.zhongyajixie.com/news/11545.html

相关文章:

  • 阿里云建设个人网站班级优化大师下载安装
  • 做网站方法站长友情链接平台
  • 做网站花的钱和优化网站有关系吗北京seo管理
  • 创建全国文明城市我们在行动绘画东莞seo建站优化哪里好
  • 北京做网站个人seo建站是什么
  • ja.wordpress.org百度seo公司哪家好一点
  • 开锁换锁公司网站模板今日头条最新消息
  • asp网站后台无法编辑百度关键词优化软件网站
  • 湖南医院响应式网站建设企业seo值怎么提高
  • 微信网站开发详解贵阳网站建设制作
  • 做投资理财网站武汉seo排名
  • 做网站没有高清图片怎么办友情链接平台站长资源
  • 建设执业资格注册管理中心网站百度推广可以自己开户吗
  • 网站域名代办合肥百度搜索排名优化
  • 医院网站备案前置审批如何做网站网页
  • 兽装定制网站网站建设流程是什么
  • 嘉兴网站搜索排名如何进行搜索引擎的优化
  • 网站建设静态代码seo是如何做优化的
  • 怎么做交友网站杭州网站推广大全
  • 湖南网站制作电话谷歌关键词
  • 福建微网站建设价格百度竞价关键词优化
  • 宝鸡做网站线上支付功能网页设计可以自学吗
  • 学校门户网站360推广客服电话是多少
  • 用discuz做交友网站网站制作开发
  • 农产品如何建设网站北京seo优化服务
  • 余姚住房和建设局网站域名大全查询
  • 网站开发w亿玛酷1专注竞价推广遇到恶意点击怎么办
  • 百度电商广告代运营郑州seo教程
  • pc网站做app京东如何制作网站赚钱
  • 出口网站有哪些临沧seo