4 条题解
-
4
看了下题解 怎么全是 暴力枚举——十重for循环 这题不是标准的dfs吗?
AC code
#include <iostream> #include <vector> using namespace std; int n; // 美味程度 vector<int> current(10, 0); vector<vector<int>> results; void dfs(int sum, int index) { if (index == 10) { if (sum == n) { results.push_back(current); // 如果满足美味程度n,记录下当前组合 } return; } for (int i = 1; i <= 3; ++i) { current[index] = i; dfs(sum + i, index + 1); } } int main() { cin >> n; dfs(0, 0); cout << results.size() << endl; for (const auto& result : results) { for (int i = 0; i < 10; ++i) { cout << result[i] << " "; } cout << endl; } return 0; }
信息
- ID
- 6137
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 3
- 标签
- 递交数
- 145
- 已通过
- 80
- 上传者