Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
52829 | AK2022071336 | 数学,很美妙吧 | C++ | 运行超时 | 0 | 1000 MS | 292 KB | 879 | 2022-07-20 12:02:08 |
#include <bits/stdc++.h> using namespace std; const int N = 5005, mod = 1e9 + 7; int n, m, k, c, s[N], ans; long long pw(long long a, long long b) { long long re = a; for(int i = 2; i <= b; i++) re = (re * a) % mod; return re; } long long sumup() { long long tmp = 0; for(int i = 1; i <= c; i++) { tmp += s[i]; } if(tmp != n) return 0; tmp = 0; for(int i = 1; i <= c; i++) { tmp = (tmp + pw(s[i], m)) % mod; } return tmp; } void dfs(int cnt, int nm) { if(c == k) { ans = (sumup() + ans) % mod; return; } c++; for(int i = nm; i <= n; i++) { s[c] = i; dfs(cnt + 1, i); } c--; return; } int main () { scanf("%d%d%d", &n, &k, &m); dfs(0, 1); printf("%d\n", ans); return 0; }