Digits

偏执的太偏执、 2023-06-01 15:00 126阅读 0赞

\(Digits\)

m6C1AO.png

这道题目比较简单,首先先打出来暴力,然后一看\(b\)的范围,瞬间想到快速幂。

快速幂的精髓是什么?

取模啊,再一看\(k\)的范围,大胆猜想模一个大于八位数的能被十整除的数字,然后发现对答案没有影响,直接做完。

代码:

  1. #include<iostream> #include<cstdio> #define ll long long using namespace std; const ll MOD=1e9,N=1e5+100; inline ll qpow(ll a,ll p) { ll base=a,ans=1; while (p) { if (p&1) ans=(ans%MOD*base%MOD)%MOD; base=(base%MOD*base%MOD)%MOD; p=p>>1; } return ans%MOD; } ll n,k,x,now; ll a[N],b[N],will[15]; int main() { scanf("%lld%lld",&n,&k); for (int i=1;i<=n;i++) scanf("%lld%lld",a+i,b+i); scanf("%lld",&x); ll ans=0; for (int i=1;i<=n;i++) ans=(ans+a[i]*qpow(x,b[i])%MOD)%MOD; int num=0; while (ans) { will[++num]=ans%10; ans/=10; } for (int i=k;i>=1;i--) printf("%lld\n",will[i]); return 0; }

转载于:https://www.cnblogs.com/last-diary/p/11405617.html

发表评论

表情:
评论列表 (有 0 条评论,126人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Digits

    \\(Digits\\) ![m6C1AO.png][] 这道题目比较简单,首先先打出来暴力,然后一看\\(b\\)的范围,瞬间想到快速幂。 快速幂的精髓是什么?