提交时间:2022-04-10 11:46:54

运行 ID: 48165

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