题解 P3228 【[HNOI2013]数列】

老K

2018-04-07 10:53:35

Solution

[详情在博客(因为我的公式渲染出了点锅在这上面不好调)](https://cnyali-lk.com/HNOI2013-%E6%95%B0%E5%88%97/) 就是快速幂了。 ```C++ ll fpm(ll a,ll b,ll p){ ll c=1; while(b){ if(b&1)c=c*a%p; a=a*a%p; b>>=1; } return c; } int main(){ #ifdef cnyali_lk freopen("3228.in","r",stdin); freopen("3228.out","w",stdout); #endif ll n,m,k,p; n=read();//read是读入 k=read()-1; m=read(); p=read(); n%=p; printf("%lld\n",(n*fpm(m,k,p)%p-fpm(m,k-1,p)*k%p*(m*(m+1)/2%p)%p+p)%p); return 0; } ```