Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
119118 | 陈家宝 | 【AB-1】函数 | C++ | 通过 | 100 | 69 MS | 5972 KB | 601 | 2024-01-04 13:00:54 |
#include<bits/stdc++.h> using namespace std; const int p=11,maxn=55,mod=998244353; void update(int &x,int y) { if((x+=y)>=mod)x-=mod; } int f[maxn][maxn*maxn*20],Powk[maxn],n,K,k1,k2,Maxv; int main() { scanf("%d%d%d%d",&n,&K,&k1,&k2); n++,Maxv=K*n*10,Powk[0]=1; for(int i=1;i<=n;i++){ Powk[i]=Powk[i-1]*k1%p; if(Powk[i]<0)Powk[i]+=p; } f[2][k1*Powk[n-1]+Powk[n-2]*k2+Maxv]=1; for(int i=3;i<=n;i++){ for(int j=-K*i*10;j<=K*i*10;j++){ for(int k=-K;k<=K;k++) update(f[i][j+Maxv],f[i-1][j-k*Powk[n-i]+Maxv]); } } printf("%d",f[n][k2+Maxv]); return 0; }