Day 14 棋盤挑戰(DFS)

2021-10-17 07:22:49 字數 1362 閱讀 9610

考點:dfs、n皇后問題

?dfs應用

acwing 1432.棋盤挑戰

給定乙個 n×nn×n 的棋盤,請你在上面放置 nn 個棋子,要求滿足:

1   2   3   4   5   6

-------------------------

1 | | o | | | | |

-------------------------

2 | | | | o | | |

-------------------------

3 | | | | | | o |

-------------------------

4 | o | | | | | |

-------------------------

5 | | | o | | | |

-------------------------

6 | | | | | o | |

-------------------------

上圖給出了當 n=6n=6 時的一種解決方案,該方案可用序列2 4 6 1 3 5來描述,該序列按順序給出了從第一行到第六行,每一行擺放的棋子所在的列的位置。

請你編寫乙個程式,給定乙個 n×nn×n 的棋盤以及 nn 個棋子,請你找出所有滿足上述條件的棋子放置方案。

輸入格式

共一行,乙個整數 nn。

輸出格式

共四行,前三行每行輸出乙個整數序列,用來描述一種可行放置方案,序列中的第 ii 個數表示第 ii 行的棋子應該擺放的列的位置。

這三行描述的方案應該是整數序列字典序排在第

一、第二、第三的方案。

第四行輸出乙個整數,表示可行放置方案的總數。

資料範圍

6≤n≤136≤n≤13

輸入樣例:

6
輸出樣例:

2 4 6 1 3 5

3 6 2 5 1 4

4 1 5 2 6 3

4

#include using namespace std;

const int n = 15;

int n,path[n],ans;

bool col[n],dg[2*n],udg[2*n];

void dfs(int x)

}for(int y = 1; y <= n; y ++ )

}}int main()

產品助理day14

一 今日工作 1 補昨天的坑 去掉多餘的字段,新增乙個代表狀態的字段!從而根據狀態明確知道什麼時候是成交的金額,在此之前的都是預估金額 二 今日收穫 1 最近的心病,對應用了解的廣度不夠 2 下手之前先想好,就像寫作文打草稿一樣,另外,要多分析競品 三 今日產品學習 收穫 先來個段子吧 正文 1 產...

每日演算法 day 14

那些你早出晚歸付出的刻苦努力,你不想訓練,當你覺的太累了但還是要咬牙堅持的時候,那就是在追逐夢想,不要在意終點有什麼,要享受路途的過程,或許你不能成就夢想,但一定會有更偉大的事情隨之而來。mamba out 2020.2.26 整體思想是 記憶化 dfs 記憶化 將搜尋過程中某一塊的內容直接記錄下來...

day14 內建函式

內建函式就是python執行時就會載入記憶體的函式,py直譯器執行後就可以直接拿來用的函式,常用的內建函式有以下這些,其中enumerate和eval是最常用的 1.bytes print 中文 encode utf8 print bytes 中文 utf8 2.char ord print chr...