暴力,僅僅也是暴力而已
#include using namespace std;
/* 構造完成標誌 */
bool sign = false;
/* 建立數獨矩陣 */
int num[9][9];
/* 函式宣告 */
void input();
void output();
bool check(int n, int key);
int dfs(int n);
/* 主函式 */
int main()
/* 讀入數獨矩陣 */
void input()
} /* 輸出數獨矩陣 */
void output()
cout << endl;
if (i % 3 == 2)
cout << endl;
} } /* 判斷key填入n時是否滿足條件 */
bool check(int n, int key)
/* 判斷n所在豎列是否合法 */
for (int i = 0; i < 9; i++)
/* x為n所在的小九宮格左頂點豎座標 */
int x = n / 9 / 3 * 3;
/* y為n所在的小九宮格左頂點橫座標 */
int y = n % 9 / 3 * 3;
/* 判斷n所在的小九宮格是否合法 */
for (int i = x; i < x + 3; i++)
/* 全部合法,返回正確 */
return true;
} /* 深搜構造數獨 */
int dfs(int n)
/* 當前位不為空時跳過 */
if (num[n/9][n%9] != 0)
else
} } }
9 9數獨 C 實現
9 9數獨規則 在乙個9 9的九宮格裡面填數字,每個方格中填入合適的數字以使得每行 從左到右 每列 從上到下 以及每個九宮格 加粗線條部分 都要包含從1 9的數字。示例如下 建立9 9的數獨矩陣 注意 int型!bool flag false void input bool check int n,...
數獨 dfs 剪枝
參考 yxc 題意 就是給你乙個九宮格,讓你填數,使橫行包含1 9,縱行包含1 9,每一塊包含1 9 思路 本題採用深搜,然後通過用col和row分別記錄橫行和縱行沒有被用過的數,cell來標記沒有被用過的數,通過0代表這個數已經被用過了,1代表這個數沒有被用過,然後通過剪枝找到某個數可以填數的最小...
數獨問題暴力搜尋
數獨問題在leetcode中有36 valid sudoku和37 sudoku solver兩道,數獨規則有三條 1.每一行數字在1 9不能重複。2.每一列數字在1 9不能重複。3.在所屬特定的3 3鄰域內的數字1 9不能重複。37.sudoku solver的要求是檢查當前數獨的合法性,採用暴力...