提交时间:2022-04-12 14:31:14

运行 ID: 48393

#include <bits/stdc++.h> using namespace std; #define ll long long #define mod 998244353 ll f[52][27],n,K,K1,K2,kpow[52]; ll qpow(ll a,ll p) { ll ans=1; while(p) { if(p&1) ans=ans*a%mod; a=a*a%mod,p>>=1; } return ans; } void Init() { cin>>n>>K>>K1>>K2; f[0][0]=1; f[K1][K2]=1; for(ll i=1; i<=n+1; i++) kpow[i]=qpow(K1,n-i+1); } int main() { Init(); for(int i=1; i<=n+1; i++) for(int j=1; j<=K2+1; j++) for(int k=-K; k<=K; k++) f[i][j]+=abs(f[i-1][j-kpow[n-i+1]]*K%mod); cout<<f[n+1][K2]<<'\n'; return 0; }