死于取膜

回复帖子

@CreeperLordVader 2019-05-04 07:49 回复

RT,求教各位大佬

应该怎么取膜啊?

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n;
int m,k,p;
template<typename type>
void read(type& x)
{
    char c=getchar();
    x=0;
    while(c<'0'||c>'9')c=getchar();
    while(c>='0'&&c<='9')
    {
        x=x*10+c-'0';
        c=getchar();
    }
}
int pw(int x,int b)
{
    if(!b)return 1;
    if(b==1)return x%p;
    int ans=pw(x,b>>1);
    if(b&1)ans*=x%p;
    ans=(ans%p*ans%p)%p;
    return ans;
}
int main()
{
    read(n);
    read(k);
    read(m);
    read(p);
    n%=p;
    m%=p;
    printf("%d\n",n*pw(m,k-1)%p-(k-1)*((m*(m+1)%p)>>1)%p*pw(m,k-2)%p);
}
反馈
如果你认为某个帖子有问题,欢迎向洛谷反馈,以帮助更多的同学。



请具体说明理由,以增加反馈的可信度。