YCOJN皇后
N皇后
在 N*N 的棋盤上放置 N 個皇后而彼此不受攻擊(即在棋盤的任一行,任一列和任一對角線上 不能放置 2 個皇后),程式設計求解所有的擺放方法。
輸入 輸出
4 2
這道題是有規律的,其皇后在同一行上,則行號相同;其皇后在同一列上,則列號相同,在/線上,則行列之和相同,在\線上,則行列之差相同。
直接上程式碼吧:
#include<bits/stdc++.h>
using namespace std;
//因為皇后在同一行,則行號相同,皇后在同一列,則列號相同,皇后在斜線上,則行列之和相同
int n,ans=0;;
int vis[100];
int a[100],b[100],c[100];//a[表示皇后放置位置],b[判斷皇后列是否已有皇后]
//c[判斷斜線是否已有皇后]
void dfs(int dep){
if(dep>n){
ans++;
return ;
}
for(int i=1;i<=n;i++){
if((!a[i])&&(!b[dep+i])&&(!c[dep-i+n])){
a[i]=1;
b[dep+i]=1;
c[dep-i+n]=1;//標記
dfs(dep+1);
a[i]=0;
b[dep+i]=0;
c[dep-i+n]=0;//刪掉標記
}
}
}
int main(){
cin >> n;
dfs(1);//從1開始找
cout << ans;
return 0;
}
相關文章
- N皇后和N皇后2
- N 皇后
- 51,N皇后
- python八皇后Python
- N皇后問題
- 棋盤 K皇后
- 7-22 n queens (10分) 八皇后(n皇后)問題
- 20241201: 51. N 皇后
- 藍橋杯-N皇后
- 八皇后||演算法演算法
- 52. N皇后 II
- 洛谷八皇后問題
- LeetCode 52. N皇后 IILeetCode
- 演算法:N皇后二演算法
- 八皇后問題python解法Python
- P1219 八皇后(dfs)
- P10871 皇后 Kraljice 題解
- 洛谷 P1219 八皇后
- HDU - 2553 N皇后問題(DFS)
- 2020-11-18 N皇后問題
- 八皇后問題分析和實現
- N皇后問題(各種優化)優化
- Python 八皇后解法(非遞迴版本)Python遞迴
- 從八皇后問題到回溯演算法演算法
- 演算法學習回顧-皇后問題演算法
- Leetcode每日一題:52.N-Queens II(N皇后Ⅱ)LeetCode每日一題
- 八皇后問題的錯誤程式碼示範
- 回溯法(排列樹)解決八(N)皇后問題
- [Hdfs] lc52. N皇后 II(dfs方案數+經典)
- n皇后問題--回溯法,以DFS的方式搜尋
- 《演算法》系列—大白話聊分治、回溯,手撕八皇后演算法
- [Java] 藍橋杯ADV-203 演算法提高 8皇后·改Java演算法
- leetcode演算法題解(Java版)-9-N皇后問題LeetCode演算法Java
- Leetcode 通過率最高的困難題 N皇后 II 【回溯解法-剪枝】LeetCode
- 每日一題之拉低通過率 回溯演算法 leetcode 51 N皇后每日一題演算法LeetCode
- 回溯演算法 | 追憶那些年曾難倒我們的八皇后問題演算法
- 【一天一大 lee】N皇后 II (難度:困難) - Day20201017
- 資料結構和演算法——遞迴-八皇后問題(回溯演算法)資料結構演算法遞迴