提交时间:2022-04-14 10:08:57
运行 ID: 48619
#include<bits/stdc++.h> using namespace std; typedef long long ll; ll n,k1,k2,K,f[52][100000],MO=11; int Pow(int b,int p) { int a=b,c=p,ans=0; while(p>0) { if(p%2!=0) ans=(ans*b%MO+MO)%MO; b=(b*b%MO+MO)%MO; p=p>>1; } ans=(ans%MO+MO)%MO; return ans; } int main() { cin>>n>>K>>k1>>k2; ll ioi=n*K*10; f[2][k1^n*k1+k1^(n-1)*k2+ioi]=1; for(int i=3;i<=n+1;i++) { ll a=Pow(k1,n-1+1); for(int j=-ioi;j<=ioi;j++) for(int k=-K;k<=K;k++) f[i][j]+=f[i-1][j-Pow(k1,n-1+1)*k+ioi]; } cout<<f[n+1][k2+ioi]%998244353; return 0; }