您的位置:首页 > 其它

HDU6063 RXD and math 快速幂

2017-08-01 22:12 387 查看
题目链接:HDU6063

2017 Multi-University Training Contest - Team 3 1008题

水题。

官方题解链接:2017 Multi-University Training Contest 3 solutions BY 洪华敦

比赛的时候一直WA,后来才发现,n的范围为1-1e18,快速幂会爆,所以要在进快速幂之前模一下,但是k不需要模,因为k是幂,模了就错了,当时考虑错了……

AC代码

/*
2017年8月1日22:10:25
HDU6063
多校赛#3 1008
AC 代码
*/
#include<stdio.h>
#include<math.h>
4000

typedef long long ll;
const ll mod=1e9+7;
ll fun(ll x,ll n)
{
ll res=1;
while(n>0)
{
if(n & 1)
res=(res*x)%mod;
x=(x*x)%mod;
n >>= 1;
}
return res;
}
int main(){
ll n,k;
ll kase=0;
while(~scanf("%I64d%I64d",&n,&k)){
ll ans=fun(n%mod,k);
printf("Case #%I64d: %I64d\n",++kase,ans);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: