棋盤問題 題解

2021-08-19 01:55:34 字數 516 閱讀 9297

這題用dfs來解  dfs函式只有乙個形參,那就是行數,因為題目中說了兩個棋子不能放在乙個棋盤的同一行或同一列,所以,一行只能選乙個能放棋子的位置來放棋子。首先定義乙個陣列,visited用來記錄第i列是否有棋子放入,注意  是第i列。

然後定義乙個全域性變數way來記錄已經往棋盤中放入了多少個棋子了,遞迴的邊界條件就是way等於k;

#includeusing namespace std;

int n,k;

char a[10][10];

int visited[10];//visited陣列記錄在前h-1行第幾列已經放入棋子了

int cont=0;//cont代表種數

int way=0;

void dfs(int h)//h代表行數   way代表選擇放入棋子的個數

if(h>=n)//當所搜尋的行數大於棋盤時   直接返回

return ;

for(int i=0;i>n>>k)

}

virtual Judge 棋盤問題題解

在乙個給定形狀的棋盤 形狀可能是不規則的 上面擺放棋子,棋子沒有區別。要求擺放時任意的兩個棋子不能放在棋盤中的同一行或者同一列,請程式設計求解對於給定形狀和大小的棋盤,擺放k個棋子的所有可行的擺放方案c。input 輸入含有多組測試資料。每組資料的第一行是兩個正整數,n k,用乙個空格隔開,表示了將...

題解 dfs之棋盤問題

在乙個給定形狀的棋盤 形狀可能是不規則的 上面擺放棋子,棋子沒有區別。要求擺放時任意的兩個棋子不能放在棋盤中的同一行或者同一列,請程式設計求解對於給定形狀和大小的棋盤,擺放k個棋子的所有可行的擺放方案c。input 輸入含有多組測試資料。每組資料的第一行是兩個正整數,n k,用乙個空格隔開,表示了將...

A 棋盤問題

在乙個給定形狀的棋盤 形狀可能是不規則的 上面擺放棋子,棋子沒有區別。要求擺放時任意的兩個棋子不能放在棋盤中的同一行或者同一列,請程式設計求解對於給定形狀和大小的棋盤,擺放k個棋子的所有可行的擺放方案c。輸入含有多組測試資料。每組資料的第一行是兩個正整數,n k,用乙個空格隔開,表示了將在乙個n n...