提交时间:2022-07-20 12:17:53
运行 ID: 52943
#include <bits/stdc++.h> using namespace std; int n,m,k; long long ans; const int M=1000000000+7; void dfs(int x,int y,int w) { if(x>n)return; if(w>k)return; if(x>=n&&w<k)return; if(x==n&&w==k) { ans+=y; return; } for(int i=x; i<=n-1; i++) { dfs(x+i,y+pow(i,m),w+1); } } int main() { cin>>n>>k>>m; for(int i=1; i<=n-1; i++) { dfs(i,pow(i,m),1); } cout<<ans%M; return 0; }