- duanjiajun's blog
寒假新学的dairy(划掉
- 2024-2-2 20:24:13 @
B2003复杂填数(数字不可重复)的深搜算法
#include <bits/stdc++.h>
using namespace std;
int arr[9 + 1], cnt;
bool flag[9 + 1];
void dfs(int step) {
if (step > 9) {
if (arr[1] * 100 + arr[2] * 10 + arr[3] + arr[4] * 100 + arr[5]
* 10 + arr[6] == arr[7] * 100 + arr[8] * 10 + arr[9]) {
cnt++;
}
} else {
for (int i = 1; i <= 9; i++) {
if (flag[i] == false) {
arr[step] = i;
flag[i] = true;
dfs(step + 1);
flag[i] = false;
}
}
}
}
int main() {
dfs(1);
cout << cnt << endl;
return 0;
}