提交时间:2022-07-20 12:05:46

运行 ID: 52875

#include <iostream> using namespace std; const int mod=1e9+7; int n,m,k; long long ans=0; int x[105]; void dfs(int d,int s,int p){ if(d>k){ if(s==0){ for(int i=1;i<=k;i++){ int cnt=x[i]; // cout<<"xi"<<x[i]<<" "; for(int j=1;j<m;j++){ cnt=(cnt*x[i])%mod; // cout<<cnt<<" "; } ans=(ans+cnt)%mod; // cout<<endl; } } return ; } for(int i=p;i<=s;i++){ x[d]=i; if(s-i>=0) dfs(d+1,s-i,i); } } int main(){ cin>>n>>k>>m; dfs(1,n,1); cout<<ans<<endl; return 0; }