hpu-【1059: 次方求和】

来源:互联网 发布:如何获取微博数据 编辑:程序博客网 时间:2024/05/16 15:30


简单的逆元,还有等比数列求和公式,需要注意的是a=1时,特殊情况的
考虑 

#include<cstdio>#define M 1000000007#define LL long longLL quick_pow(LL a,LL n){LL ans=1;while(n){if(n&1)ans=ans*a%M;a=a*a%M;n>>=1; } return ans;} int main(){LL t;scanf("%lld",&t);while(t--){LL a,n;scanf("%lld%lld",&a,&n);LL ans;if(a==1){ans=a*n%M;printf("%lld\n",ans);continue;  }LL d=quick_pow(1-a,M-2);LL c=quick_pow(a,n+1);ans=(a-c-M)*d%M;printf("%lld\n",ans); } return 0;}


0 0
原创粉丝点击