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

一个人可以做多少网站有名的网页游戏

一个人可以做多少网站,有名的网页游戏,做企业网站设,网站开发语言和数据库题目 求 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.yayakq.cn/news/542086/

相关文章:

  • 沈阳专业制作网站html可以用什么软件写
  • 网站左悬浮代码宁波外贸网站推广
  • 郑州做品牌网站好的公司wap的网站
  • 播放视频网站怎么做的中国商城网站建设
  • 宣讲家网站美丽乡村建设为什么做网站网站
  • 九冶建设有限公司官方网站WordPress 同步网易博客
  • 华为快速建站asp个人网站下载
  • 阳山做网站自己做局域网站
  • 网站制作厂家造价工程建设协会网站
  • 怎么把自己做的网站上传到网上seo推广效果怎么样
  • 学校网站建设小组及分工做如美团式网站要多少钱
  • 中国传统色彩网站建设方案会员卡管理系统哪里买
  • 烟台住房和规划建设局网站网站建设宣传图片
  • 网站开发老是弹广告重庆网站制作哪家好
  • 合肥网站设计高端公司阿克苏交通建设局网站
  • 企业做网站优点淮安集团网站建设
  • 东莞企业为什么网站建设斗图在线制作
  • 学建站wordpress网站建设工作流程html
  • 网站添加备案信息吗江苏网站推广公司
  • 网站建设模板代理郑州网站建设伟置
  • 网络建设推广云优化seo软件
  • 网站如何做百度百科音乐网站制作教程
  • 如何重启网站服务器做雕塑设计的网站
  • 做包装盒有哪些网站传媒公司
  • 广州可信网站认证服务器东莞企业网站建设开发公司
  • 做购物商城网站建设手机制作表格的软件免费
  • 安平县做网站的有哪些网站源码后台
  • 怎么做网站logowordpress分类名插件
  • 有了域名怎么做自己得网站贵州省建设厅网站查
  • 建设网站部署环境网站的锚点链接怎么做