提交时间:2022-07-20 12:09:31

运行 ID: 52913

#include <bits/stdc++.h> using namespace std; const int N = 1e9 + 7; long long n, m, k; long long ans; void dfs(int a, int b, int c) { if(a > n) return ; if(c > k) return ; if(a >= n && c < k) return ; if(a == n && c == k) { ans += b; return ; } for(int i = a; i <= n - 1; i ++) { dfs(a + i, b + pow(i, m), c + 1); } return; } int main() { cin >> n >> k >> m; for(int i = 1; i <= n-1; i ++) { dfs(i, pow(i, m), 1); } cout << ans % N; return 0; }