2 条题解
-
0
#include <cstdio> #include <vector> #include <algorithm> using namespace std; vector<int> run(int n, int a, int k) { vector<int> res; int g = a % 10; int b1 = g - 1, b2 = g + 1; if (b1 < 0) b1 = 9; else if (b2 > 9) b2 = 0; if (k <= 0) { res.push_back(a); return res; } else if (n == 1) { res.push_back(b1); res.push_back(b2); res.push_back(g); return res; } vector<int> l1 = run(n - 1, a / 10, k - 1); for (int i : l1) res.push_back(i * 10 + b1), res.push_back(i * 10 + b2); vector<int> l2 = run(n - 1, a / 10, k); for (int i : l2) res.push_back(i * 10 + g); return res; } int main() { int n, a, k; scanf("%d%d%d", &n, &a, &k); vector<int> resl = run(n, a, k); sort(resl.begin(), resl.end()); for (int i : resl) printf("%d\n", i); return 0; }
最优解
信息
- ID
- 105
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 9
- 标签
- (无)
- 递交数
- 125
- 已通过
- 9
- 上传者