百練 棋盤問題(DFS)

2021-08-21 20:18:57 字數 537 閱讀 1599

一開始想的時候標記想錯了,其實標記只要一組對列的標記就夠,這樣在行往下的過程中,行每行確定只放乙個了,與一般dfs還有一點不同的是,這個有可能出現棋子數不足的情況,這就要求在dfs過程中,需要分放和不放兩種,在放的部分中**再體現出行的標記變換

還有個有點陰的地方是#是可以放的,迷宮題做多了都預設#是不行的了  - -

題目鏈結

#include #include using namespace std;

int n,k;

int vis[10];

char m[10][10];

int count = 0;

int total = 0;

void dfs(int x)

if(x>=n)

for(int j=0;jdfs(x+1);// 因為不等額 在這一行直接不放

}int main(void)

for(int i=0;idfs(0);

printf("%d\n",count);

} }

百練1321 棋盤問題題解

總時間限制 1000ms 記憶體限制 65536kb 描述 在乙個給定形狀的棋盤 形狀可能是不規則的 上面擺放棋子,棋子沒有區別。要求擺放時任意的兩個棋子不能放在棋盤中的同一行或者同一列,請程式設計求解對於給定形狀和大小的棋盤,擺放k個棋子的所有可行的擺放方案c。輸入輸入含有多組測試資料。每組資料的...

百煉 1321 棋盤問題(dfs)

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

棋盤問題 DFS

c 棋盤問題 time limit 1000msmemory limit 10000kb64bit io format i64d i64u submit status practice poj 1321 description 在乙個給定形狀的棋盤 形狀可能是不規則的 上面擺放棋子,棋子沒有區別。要...