1 条题解
-
0

#include <cstdio> #define int long long int read() { int x=0,f=1;char c; while((c=getchar())<'0' || c>'9') {if(c=='-') f=-1;} while(c>='0' && c<='9') {x=(x<<3)+(x<<1)+(c^48);c=getchar();} return x*f; } int n,m,k,p; int qkpow(int a,int b) { int r=1; while(b>0) { if(b&1) r=r*a%p; a=a*a%p; b>>=1; } return r; } signed main() { n=read();k=read();m=read();p=read(); int ans=n%p*qkpow(m,k-1)%p- qkpow(m,k-2)*(k-1)%p*((m+1)*m/2%p)%p; printf("%lld\n",(ans+p)%p); }
- 1
信息
- ID
- 4807
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 9
- 标签
- 递交数
- 12
- 已通过
- 5
- 上传者