比赛 寒假集训2 评测结果 WWWWWATTTTTTTTTTTTTT
题目名称 组合数问题 最终得分 5
用户昵称 梦那边的没好TM 运行时间 15.691 s
代码语言 C++ 内存使用 3.49 MiB
提交时间 2026-02-25 11:20:58
显示代码纯文本
#include<bits/stdc++.h> 
using namespace std;

#define ll long long
#define foru(a,b,c) for(ll a=b;a<=c;a++)

ll n,x,p,m,f[10005],a[1005];

ll pw(ll a,ll b){
    ll res=1;
    a%=p;
    while(b>0){
        if(b%2==1){
            res=(res*a)%p;
        }
        a=(a*a)%p;
        b/=2;
    }
    return res;
}

ll wp(ll a){
    return pw(a,p-2);
}

int main(){
    freopen("problem.in","r",stdin);
    freopen("problem.out","w",stdout);
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin>>n>>x>>p>>m;
    foru(i,0,m){
        cin>>a[i];
    }
    ll ans=0,tx=1,tc=1;
    foru(k,0,n){
        ll fk=0,kpw=1;
        foru(i,0,m){
            fk=(fk+a[i]*kpw)%p;
            kpw=(kpw*k)%p;
        }
        ll tmp=(fk*tx)%p;
        tmp=(tmp*tc)%p;
        ans=(ans+tmp)%p;
        if(k<n){
            tx=(tx*x)%p;
            tc=(tc*(n-k))%p;
            tc=(tc*wp(k+1))%p;
        }
    }
    cout<<ans;
    return 0;
}