提交时间:2022-04-14 22:25:43
运行 ID: 48688
#include<bits/stdc++.h> using namespace std; typedef long long ll; ll n,k1,k2,K; ll f[52][40010]; const ll MOD=998244353; int Pow(int a,int b) { ll res = 1; while(b) { if(b&1) res=res*a%11; a=a*a%11; b>>=1; } return (res+11)%11; } int main() { cin>>n>>K>>k1>>k2; ll ioi=n*K*10; f[2][Pow(k1,n)*k1+Pow(k1,n-1)*k2+ioi]=1; for(int i=3;i<=n+1;i++) { ll a=Pow(k1,n-i+1); for(int j=-ioi;j<=ioi;j++) { for(int k=-K;k<=K;k++) if(j-a*k+ioi>=0) { f[i][j+ioi]+=f[i-1][j-a*k+ioi]; if(f[i][j+ioi]>=MOD) f[i][j + ioi]-=MOD; } } } cout<<f[n+1][k2+ioi]%MOD; return 0; }