藍橋杯題目練習 提公升篇 藍橋杯 2n皇后問題

2021-10-03 19:16:26 字數 2005 閱讀 5689

給定乙個n*n的棋盤,棋盤中有一些位置不能放皇后。

現在要向棋盤中放入n個黑皇后和n個白皇后,使任意的兩個黑皇后都不在同一行、同一列或同一條對角線上

任意的兩個白皇后都不在同一行、同一列或同一條對角線上。

問總共有多少種放法?n小於等於8。

輸入輸入的第一行為乙個整數n,表示棋盤的大小。

接下來n行,每行n個0或1的整數

如果乙個整數為1,表示對應的位置可以放皇后,如果乙個整數為0,表示對應的位置不可以放皇后。

輸出輸出乙個整數,表示總共有多少種放法。

樣例輸入 copy

41 1 1 1

1 1 1 1

1 1 1 1

1 1 1 1

樣例輸出 copy我的**:

#include

using namespace std;

int map[

10001][

10001];

int res[

10001][

10001];

bool bx[

10001];

bool by[

10001];

bool bl[

10001

],br[

10001];

bool wx[

10001];

bool wy[

10001];

bool wl[

10001

],wr[

10001];

int n,sum;

void

ouput()

cout

wdfs

(int index)

for(

int i=

1;i<=n;i++)}

}}void

dfs(

int index)

for(

int i=

1;i<=n;i++)}

}}intmain()

}for

(int i=

1;i<=n;i++

)dfs(1

);cout

}

大佬的**:

#include

using namespace std;

int ways =0;

bool feasible

(int row,

int col,

int n,

int board[

100]

[100],

int color)

//右下

for(

int i =

1;i <= n - row && i <= n - col;i++

)for

(int i =

1;i <= row && i <= n - col;i++

)for

(int i =

1;i <= row && i <= col;i++

)for

(int i =

1;i <= n - row && i <= col;i++

)return true;

}void

queen

(int t,

int n,

int board[

100]

[100],

int row,

int col,

int color)

}int flag =0;

int color_t =

(color ==0)

?2:3

;for

(int i = row;i < n;i++)}

}}intmain()

}queen(0

,n,board,0,

0,0)

; cout

}

藍橋杯題目練習 提公升篇 藍橋杯 分解質因數

求出區間 a,b 中所有整數的質因數分解。輸入輸入兩個整數a,b。2 a b 10000 輸出每行輸出乙個數的分解,形如k a1a2a3 a1 a2 a3 k也是從小到大的 具體可看樣例 樣例輸入 copy 3 10 樣例輸出 copy 3 34 22 5 56 23 7 78 222 9 33 1...

藍橋杯 2N皇后

問題描述 給定乙個n n的棋盤,棋盤中有一些位置不能放皇后。現在要向棋盤中放入n個黑皇后和n個白皇后,使任意的兩個黑皇后都不在同一行 同一列或同一條對角線上,任意的兩個白皇后都不在同一行 同一列或同一條對角線上。問總共有多少種放法?n小於等於8。輸入格式 輸入的第一行為乙個整數n,表示棋盤的大小。接...

藍橋杯 2n皇后

資源限制 時間限制 1.0s 記憶體限制 512.0mb 問題描述 給定乙個n n的棋盤,棋盤中有一些位置不能放皇后。現在要向棋盤中放入n個黑皇后和n個白皇后,使任意的兩個黑皇后都不在同一行 同一列或同一條對角線上,任意的兩個白皇后都不在同一行 同一列或同一條對角線上。問總共有多少種放法?n小於等於...