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

秦皇岛市网站制作公司seo分析是什么意思

秦皇岛市网站制作公司,seo分析是什么意思,哪些网站适合推广,网店代运营代理审题: 本题需要我们计算出(a^b)%c的值,并按照规定格式输出 思路: 方法一:暴力解法 我们直接循环b次计算出a^b,然后再取余c,从而得出最终结果 时间上:会进行2^31次,他的数量级非常大,…

审题:
本题需要我们计算出(a^b)%c的值,并按照规定格式输出

思路:
方法一:暴力解法

我们直接循环b次计算出a^b,然后再取余c,从而得出最终结果

时间上:会进行2^31次,他的数量级非常大,一定会超时

空间上:由于a和b的最大值都是2^31,所以最终的结果也是大于longlong类型的,会溢出结果

综上,暴力解法的时间和空间都无法通过,我们无法采用该方法

方法二:快速幂

快速幂是基于倍增思想的,接下来我们看看倍增思想是如何体现出来的

我们可以通过每次倍增a的n次方来快速得到a的2的n次幂的结果,而不需要一个个a乘,大大减少了a的次方的计算时间。

但是这也有个问题,就是我们只能知道a的2的n次幂,而无法知道其他的结果

(比如a^11),那么我们如何去求出其他结果?

经过观察我们发现,其实我们计算出的a的2的n次幂其实是二进制的权值

这里我们以a^11为例子,先将11从十进制转为二进制的值1011.

然后将他根据二进制的含义拆解为2的n次幂的式子,此时我们就可以利用上我们倍增计算出来的数据表示出任意次方的a的值了

那么此时时间的问题就解决了,可是计算的时候仍然会出现数据溢出的情况,空间问题如何解决?

性质1:如果只涉及加法,乘法的取模运算,我们可以在任意地方取模

性质2:如果取余结果可能为负,而题目要求取余结果必须为正,那么我们有“模加模”的方法补正

由于a-b关于c取余了,所以结果的绝对值一定小于c,此时我们加c就会让中括号内的数据值大于0,这就是补正,然后我们再取余c即可

根据性质1我们可知:我们可以在计算倍增的同时对倍增的结果取余c,然后在计算answer的时候也取余c,这样子空间问题就解决了

解题步骤:
1.在倍增计算的之前对该倍增数据是否需要乘入answer进行判断

2.answer判断完之后倍增数据

3.b右移一位和&1操作结合,从而得知下一个倍增数据的选择情况

解题:
 

#include<iostream>
using namespace std;
typedef long long ll;
ll a, b, c;
ll func(ll a, ll b, ll c)
{ll answer = 1;while (b){if (b & 1)answer = answer * a % c;//与answer*=a%c不同a =a * a % c;//倍增b = b >> 1;}return answer;
}
int main()
{cin >> a >> b >> c;printf("%lld^%lld mod %lld=%lld", a, b, c, func(a,b,c));return 0;
}

1.格式化输出:由于本题的答案输出有特定格式,所以我们使用c语言的输出语句printf比较合适

2.我们需要根据b的二进制位来判断当前倍增数据是否需要乘进answer,为1时需要,为0时不需要,所以我们使用b&1来判断当前位是否为1

3.在计算倍增和answer的时候都取模c,从而满足空间需求

4.不要省略的写计算式,因为answer*=a%c和answer = answer * a % c是不同的

P1226 【模板】快速幂 - 洛谷

http://www.dtcms.com/wzjs/198358.html

相关文章:

  • 建筑建材网站建设搜狗提交入口网址
  • 煤棚网架多少钱一平方seo还有未来吗
  • 郑州 手机网站制作百度一下电脑版网页
  • 做二手货的网站有哪些seo关键词排名优化手机
  • 钓鱼网站后台是怎么做的百度客服电话人工服务
  • 政府网站建设规划署优化网站有哪些方法
  • 租用网站空间百度合伙人答题兼职赚钱
  • 网站开发的app轻松seo优化排名 快排
  • 贵州网站制作公司网络建站
  • 推广链接怎么做宁波seo基础入门
  • 临安营销型网站建设网络测试
  • 潍坊疫情最新消息今天新增病例手机系统优化
  • 做不好的网站违法吗福建seo快速排名优化
  • 做免费的小说网站可以赚钱吗seo优化入门教程
  • 山东菏泽网站建设湖南靠谱seo优化报价
  • 知名网站建设开发网站地址ip域名查询
  • 源码资源下载站广东优化疫情防控措施
  • 用adsl做网站备案湖南网络优化
  • 有网站代码怎么建站google下载安装
  • 工信部2017网站备案百度推广seo自学
  • 网站建设面对的问题汉中网站seo
  • 网站积分商城该怎么建立哪些浏览器可以看禁止访问的网站
  • 网站怎样做优化昆明百度推广开户
  • 营销型网站建设实战》58同城推广效果怎么样
  • 中企动力网站建设方案西安做seo的公司
  • 效果好的免费网站建设外贸推广平台哪家好
  • 做网贷网站百度竞价排名叫什么
  • wordpress插件的使用方法seo兼职工资一般多少
  • ssh框架做音乐网站广告电话
  • 做网站要多少知识 java广东公司搜索seo哪家强