2 条题解
-
0
记忆化搜索
#include <iostream> using namespace std; const int N = 1010; int n; int dp[N]; int f(int x) { if (dp[x]) return dp[x]; int sum = 1; for (int i = 1; i * 2 <= x; i++) { sum += f(i); } return dp[x] = sum; // 把之前得到的解决方案保存起来, 减少递归次数 } void solve() { cin >> n; cout << f(n) << endl; } int main() { solve(); return 0; }
信息
- ID
- 86
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 93
- 已通过
- 31
- 上传者