HDU6063 RXD and math 快速幂

来源:互联网 发布:linux查看目录权限 编辑:程序博客网 时间:2024/05/17 08:52

题目链接:HDU6063
2017 Multi-University Training Contest - Team 3 1008题
水题。
官方题解链接:2017 Multi-University Training Contest 3 solutions BY 洪华敦
比赛的时候一直WA,后来才发现,n的范围为1-1e18,快速幂会爆,所以要在进快速幂之前模一下,但是k不需要模,因为k是幂,模了就错了,当时考虑错了……
AC代码

/*20178122:10:25HDU6063 多校赛#3 1008AC 代码 */ #include<stdio.h>#include<math.h>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;}  
原创粉丝点击