题目传送门:“蓝桥杯”练习系统 (lanqiao.cn)
回溯搜索代码:
#include<bits/stdc++.h>
using namespace std;
int n, ans;
int visited[10]; //标记这列是否被放置过
void dfs(int x) {
if(x > n) return;
// 选取在这一行放置的位置
for(int i = 1; i <= n; i++) {
if(!visited[i]) {
visited[i] = 1;
ans++;
dfs(x + 1);
visited[i] = 0;
}
}
dfs(x + 1); // 跳过本行进入下一行
return;
}
int main() {
cin >> n;
dfs(1);
cout << ans + 1 << '\n';
return 0;
}
1199

被折叠的 条评论
为什么被折叠?



