設有乙個4*4的棋盤,用四個棋子布到格仔中,要求滿足以下條件:
(1)任意兩個棋子不在同一行和同一列上;
試問有多少種棋局,程式設計把它們全部列印出來。
**如下:
#include
#include
#include
#include
#include
using namespace std;
int n=4, m=4, used_line[12], opt[5];
// n為行 m為列 used_line記錄這列有沒有棋子放置
void dfs(int deep)
printf("\n");
//列印方案
return; //這個時候就可以回溯啦。。。 }
for (int i=1; i<=4; i++) //你可一放當前行的第1,2,3,4個(先不管方案可不可行)
if (used_line[i]==false) //如果這行沒有放過。。。
} int main()
POJ 1321搜尋簡單題
在乙個給定形狀的棋盤 形狀可能是不規則的 上面擺放棋子,棋子沒有區別。要求擺放時任意的兩個棋子不能放在棋盤中的同一行或者同一列,請程式設計求解對於給定形狀和大小的棋盤,擺放k個棋子的所有可行的擺放方案c。input 輸入含有多組測試資料。每組資料的第一行是兩個正整數,n k,用乙個空格隔開,表示了將...
簡單搜尋題 馬的走法
乙個4 5 的棋盤,輸入馬的起始座標,求馬能返回初始位置的所有不同走法的總數 馬走過的位置不能重複,馬走 日 字 include iostream using namespace std const introws 4 行數const intcolums 5 列數int chess rows col...
LeetCode簡單題10 搜尋插入位置
題目描述 給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。可假設陣列中無重複元素。樣例 輸入 1,3,5 3 輸出 1 輸入 1,4 3 輸出 1 輸入 1 1 輸出 0 題解 看起來,因為是排好序的,遍歷一遍就可以找出被插入的...