1 solutions
-
0
这一题考虑爆搜:我们dfs数字间的符号,找到n个符号就判断一次。如果可行就输出, 我们假设可以插入的
+
,-
,#include <bits/stdc++.h> using namespace std; char sign[11]; int n; void coutt() { cout << 1; for (int i = 1; i < n; ++i) cout << sign[i] << i + 1; cout << endl; return; } void dfs(int x, int sum, int i, int ssign) { if (x == n) { if (sum + i * ssign == 0) coutt(); return; } sign[x] = ' '; dfs(x + 1, sum, i * 10 + x + 1, ssign); sign[x] = '+'; dfs(x + 1, sum + i * ssign, x + 1, 1); sign[x] = '-'; dfs(x + 1, sum + i * ssign, x + 1, -1); } int main() { cin >> n; dfs(1, 0, 1, 1); return 0; }
- 1
Information
- ID
- 609
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 8
- Tags
- (None)
- # Submissions
- 27
- Accepted
- 5
- Uploaded By