Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
52973 Scorpio 数学,很美妙吧 C++ 运行超时 0 1000 MS 296 KB 763 2022-07-20 12:31:23

Tests(0/10):


#include<bits/stdc++.h> using namespace std; const int mod = 1e9 + 7; int n, m, k; long long ans; int pow(int a, int x){ long long result = 1; if(x == 0){ return 0; } while(a > 0){ if(a % 2 == 0){ a = a / 2; x = x * x % mod; } else{ a--; result = result * x % mod; a = a / 2; x = x * x % mod; } } return result % mod; } void dfs(int num, int sum, int cnt){ if(num == k && sum == n){ ans = (ans + cnt) % mod; return; } if(num == k || sum > n){ return; } for(int i = 1; i <= n; i++){ if(sum + i > n){ break; } dfs(num + 1, sum + i, (cnt + pow(m, i)) % mod); } return; } int main(){ cin >> n >> k >> m; dfs(0, 0, 0); cout << ans / 2 << endl; return 0; }


测评信息: