题目:

由题目推出计算公式:
ans = (2^(n-1) + 1) % n

因为n取值很大,所以需要用到快速幂取模:

int multi(int a,int b)
{   int ret;   ret=1;    while(b>0)  {      if(b&1)ret=(ret*a)%mod;     a=(a*a)%mod;      b>>=1;   }   return ret;
}

b&1即将b转换为二进制数,然后从右边第一位开始与1取与运算,判断是否乘一倍数a,然后将a*a相当于二分了原来的乘法。再将b往右移动一位 (相当于除以2),这样以logb的时间复杂度计算a^b。

AC 代码:

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>using namespace std;long long int mod;long long int multi ( long long int a, long long int b )
{long long int ret;ret = 1;while(b>0){if(b&1)ret = (ret*a)%mod;a = (a*a)%mod;b>>=1;}return ret;
}int main()
{long long int N;while (scanf("%lld", &N) && N){mod = N;long long int ans = (multi(2, N-1) + 1)%N ;cout << ans << endl;}}

快速幂取模——Pupu(HDU 3003)相关推荐

  1. HDU3003 Pupu,快速幂取模

    快速幂取模就是在O(logn)内求出a^n mod b的值.算法的原理是(a*b) mod c=(a mod c)*(b mod c)mod c /************************** ...

  2. 数学--数论--HDU 4675 GCD of Sequence(莫比乌斯反演+卢卡斯定理求组合数+乘法逆元+快速幂取模)

    先放知识点: 莫比乌斯反演 卢卡斯定理求组合数 乘法逆元 快速幂取模 GCD of Sequence Alice is playing a game with Bob. Alice shows N i ...

  3. HDU 4365 正方形格子涂色中心对称轴对称的涂法有多少种-思维-(矩阵坐标关系快速幂取模)

    题意:n*n的格子,涂色,有k种颜料,必须满足旋转任意个90度和翻转之后图片的样子不变,现在已经有m个格子涂过色了,问还有多少种涂法满足上述条件. 分析: 满足上述对称条件,那么涂色的种类问题我们可以 ...

  4. c语言的幂乘积表达式,POJ 1845 Sumdiv [素数分解 快速幂取模 二分求和等比数列]

    大致题意: 求A^B的所有约数(即因子)之和,并对其取模 9901再输出. 解题基础: 1) 整数的唯一分解定理: 任意正整数都有且只有一种方式写出其素因子的乘积表达式. ,其中 为素数 2) 约数和 ...

  5. C语言快速幂取模算法小结

    资料链接:http://www.jb51.net/article/54947.htm C语言实现的快速幂取模算法,是比较常见的算法.分享给大家供大家参考之用.具体如下: 首先,所谓的快速幂,实际上是快 ...

  6. 【算法分析与设计】快速幂算法与快速幂取模算法

    文章目录 快速幂算法 算法分析 算法实现 位运算优化 BigInteger支持 快速幂取模算法 算法优点 算法推导 算法实现 BigInteger支持 本文完整代码实现(Java语言描述) 快速幂算法 ...

  7. CodeForces Round #191 (327C) - Magic Five 等比数列求和的快速幂取模

    很久以前做过此类问题..就因为太久了..这题想了很久想不出..卡在推出等比的求和公式,有除法运算,无法快速幂取模... 看到了 http://blog.csdn.net/yangshuolll/art ...

  8. 【快速幂取模】NOI 7833:幂的末尾

    NOI 7833:幂的末尾     点击打开链接 总时间限制: 1000ms 内存限制: 65536kB 描述 幂ab的末3位数是多少? 输入 两个正整数a,b.1 <= a <= 100 ...

  9. 【算法】求n的m次方(快速幂取模)

    题目 求n的m次方,n,m均为自然数. 解析 看似简单的题目,但是要想写的高效还不是那么容易想出来. 实现 unsigned int power(unsigned int a, unsigned in ...

最新文章

  1. 零基础掌握极大似然估计
  2. qlistview 自定义控件_是否可以在QListView中添加自定义窗口小部件?
  3. window.showModalDialog用法
  4. error: Unable to find vcvarsall.bat
  5. 计算机对电器的影响论文,突然断电到底伤不伤电器:这是答案
  6. 启动凤凰系统出现android,凤凰系统重启后出现蓝屏时的解决方法
  7. python爬虫100个入门项目
  8. 零基础自学软件测试-项目经验-电商项目实战-测试用例设计-促销中心
  9. 加法的横式竖式教案c语言,竖式进位加法教案
  10. vscode中使用beautify插件格式化vue文件
  11. Photoshop 油画效果
  12. 计算机蓝屏无法启动代码50,win7系统出现蓝屏代码0x0000050怎么解决
  13. 下载B(bilibili)站视频
  14. android nv21,NV21与I420
  15. [Python从零到壹] 四.网络爬虫之入门基础及正则表达式抓取博客案例
  16. 为什么点击验证码不刷新
  17. 从光耦到数字隔离器的“国产替代”之路
  18. 电脑不识别扫码枪怎么解决?
  19. 计算机运算器分为哪三种结构,运算器有哪几部分组成
  20. SPOJ 7258 SUBLEX 后缀数组_二分答案_前缀和

热门文章

  1. C练题笔记之:Leetcode-第 85 场双周赛---6158. 字母移位 II
  2. 1059 习题4-12 求建筑物高度
  3. 2012年北京地铁规划图(我好不容易找到的哦)
  4. 4. Python面向对象语法——类的构造函数
  5. Android的数据结构与算法----ArrayList源码解析
  6. java请求url加密_SpringCloud-Config通过Java访问URL对敏感词加密解密
  7. ⭐❤️zigbee无线通信模块的深入浅出❤️⭐
  8. PS/2接口鼠标滚轮不能用的解决办法
  9. ArcGIS Pro基于遥感影像使用深度学习地物识别评估植被健康情况(教程)
  10. 钟景华:相关规范或明年发布,大型和超大型数据中心PUE小于1.3/WUE小于1.6