提交时间:2022-04-10 21:58:46

运行 ID: 48214

#include<bits/stdc++.h> #define mod 998244353 using namespace std; int n,K,k1,k2; long long dp[55][25005]; int fpow(int a,int b){ if(!b) return 1; int t(fpow(a,b>>1)); if(b&1) return ((t*t%11+11)%11*a%11+11)%11; return (t*t%11+11)%11; } int main(){ std::ios::sync_with_stdio(0); cin.tie(0);cout.tie(0); cin>>n>>K>>k1>>k2; dp[1][fpow(k1,n)*k1+fpow(k1,n-1)*k2+12500]=1ll; for(int i(2);i<=n;++i){ int x(fpow(k1,n-i+1)); for(int j(0);j<=25000;++j) for(int k(-K);k<=K;++k) if(j>=k*x) dp[i][j]=(dp[i][j]+dp[i-1][j-k*x])%mod; } cout<<dp[n][k2+12500]<<endl; return 0; }