题解 P3228 【[HNOI2013]数列】
老K
2018-04-07 10:53:35
[详情在博客(因为我的公式渲染出了点锅在这上面不好调)](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;
}
```