洛谷P1784 數獨題解(DFS解法)

2021-10-17 15:08:17 字數 1202 閱讀 6927

數獨是根據 9×9 盤面上的已知數字,推理出所有剩餘空格的數字,並滿足每一行、每一列、每乙個粗線宮內的數字均含 1−9 ,不重複。每一道合格的數獨謎題都有且僅有唯一答案,推理方法也以此為基礎,任何無解或多解的題目都是不合格的。

芬蘭一位數學家號稱設計出全球最難的「數獨遊戲」,並刊登在報紙上,讓大家去挑戰。

這位數學家說,他相信只有「智慧型最頂尖」的人才有可能破解這個「數獨之謎」。

據介紹,目前數獨遊戲的難度的等級有一到五級,一是入門等級,五則比較難。不過這位數學家說,他所設計的數獨遊戲難度等級是十一,可以說是所以數獨遊戲中,難度最高的等級。他還表示,他目前還沒遇到解不出來的數獨遊戲,因此他認為「最具挑戰性」的數獨遊戲並沒有出現。

乙個未填的數獨。

填好的數獨。

數獨由9×9的格仔組成,

規則是:每行、列、宮各自都要填上1-9的數字,要做到每行、列、宮裡的數字都不重複。

宮是由3×3的小格仔組成的

這道題時間限制是1s,記憶體限制125m,用dfs問題不大。

#include

using

namespace std;

int a[15]

[15],b[15]

[15],c[15]

[15],g[15]

[15],flag=0;

/*開四個陣列,a陣列用來儲存數獨,b陣列用來記錄當前行是否出現過該數字,

c陣列用來記錄當前列是否出現過該數字,g陣列用來記錄當前宮格是否出現過該數字*/

void

dfs(

int x,

int y)

return;}

if(a[x]

[y]==0)

//如果當前位置未被占用,則進行填數,否則直接進入下乙個位置

這是我在洛谷中的測評記錄,這道題用dfs最快能跑3ms,最慢也只用了6ms。

洛谷 P1784 數獨

題目描述 數獨是根據9 9盤面上的已知數字,推理出所有剩餘空格的數字,並滿足每一行 每一列 每乙個粗線宮內的數字均含1 9,不重複。每一道合格的數獨謎題都有且僅有唯一答案,推理方法也以此為基礎,任何無解或多解的題目都是不合格的。芬蘭一位數學家號稱設計出全球最難的 數獨遊戲 並刊登在報紙上,讓大家去挑...

洛谷 P1784 數獨

洛谷傳送門 數獨是根據 9 times 99 9 盤面上的已知數字,推理出所有剩餘空格的數字,並滿足每一行 每一列 每乙個粗線宮內的數字均含 1 91 9 不重複。每一道合格的數獨謎題都有且僅有唯一答案,推理方法也以此為基礎,任何無解或多解的題目都是不合格的。芬蘭一位數學家號稱設計出全球最難的 數獨...

洛谷 P1784 數獨

數獨是根據9 9盤面上的已知數字,推理出所有剩餘空格的數字,並滿足每一行 每一列 每乙個粗線宮內的數字均含1 9,不重複。每一道合格的數獨謎題都有且僅有唯一答案,推理方法也以此為基礎,任何無解或多解的題目都是不合格的。芬蘭一位數學家號稱設計出全球最難的 數獨遊戲 並刊登在報紙上,讓大家去挑戰。這位數...