【SSLGZ 2790】2017年10月25日提高组T2 次方的运算
来源:互联网 发布:免费路由软件 编辑:程序博客网 时间:2024/05/16 15:26
问题描述
输入
第一行:两个正整数a,b
输出
第一行:一个整数,代表答案 答案mod 10^9+7
样例输入
2 4
样例输出
256
算法讨论
首先我们来看一下费马小定理:假如p是质数,且gcd(a,p)=1,那么 a(p-1)≡1(mod p),即:假如a是整数,p是质数,且a,p互质(即两者只有一个公约数1),那么a的(p-1)次方除以p的余数恒等于1。我们把问题的式子化简一下,可以知道其底数为a,指数为a的(b-1)次方,我们把p设为10^9+7,然后将指数算出来对(p-1)取模,取出的值就是对底数真正有贡献的指数(因为a的(p-1)次方对p取模恒等于1),然后再跑一边快速幂即可。
#include <cstdio>using namespace std;#define mo 1000000007long long a,b,c;long long power(long long a,long long b,long long p){ long long ans=1,base=a; while (b!=0) { if (b & 1!=0) ans=(ans*base) % p; base=(base*base) % p; b>>=1; } return ans;}int main(){ scanf("%lld%lld",&a,&b); c=power(a,b-1,mo-1); printf("%lld",power(a,c,mo));}
Pixiv ID:63180283
阅读全文
0 0
- 【SSLGZ 2790】2017年10月25日提高组T2 次方的运算
- SSL2790 2017年10月25日提高组T2 次方的运算(math)
- 【SSLGZ 2793】2017年10月26日提高组T2 Deep(博弈)
- 【SSLGZ 2794】2017年10月26日提高组T2 Dark(dp)
- 【SSLGZ 2810】2017年10月30日提高组T2 数论
- 【SSLGZ 2811】2017年10月30日提高组T2 摘Galo
- 【SSLGZ 2812】2017年10月30日提高组T2 凤凰院真凶
- 【SSLGZ 2671】2017年8月8日提高组T2 呀!回文串
- 【SSLGZ 2674】2017年8月9日提高组T2 覆盖
- 【SSLGZ 2688】2017年8月14日提高组T2 温度
- 【SSLGZ 2703】2017年8月16日提高组T2 疾病
- 【SSLGZ 2780】2017年10月20日提高T2 收银员(01背包)
- 【SSLGZ 2677】2017年8月10号提高组T2 飞行
- 【SSLGZ 2788】2017年10月24日提高组 想法的升级
- 2017年10月6日提高组T2 挖矿
- 2017年10月6日提高组T2 挖矿
- 【SSLGZ 2682】2017年8月12日提高组T1 YMW的杯子
- 【SSLGZ 2676】2017年8月10日提高组T1 数学
- MongoDB:17-MongoDB-索引限制及其他限制规则
- BZOJ 1082 [SCOI2005]栅栏 二分+DFS
- ftp上传工具类
- 递归与回溯
- jQuery学习
- 【SSLGZ 2790】2017年10月25日提高组T2 次方的运算
- 客户端 网络请求封装类 --- HttpManger
- java长链接转短链接代码
- MySQL 5.6 (Win7 64位)下载、安装与配置图文教程
- LIS问题(最长递增子序列)
- 顺时针、逆时针两种方式减小的倒计时动画
- .编写函数: unsigned int reverse_bit(unsigned int value); 这个函数的返回值value的二进制位模式从左到右翻转后的值。
- ACdream 1015 A
- 简单高精度减法