最近學校搞了個數獨比賽,於是找了這道題。
數獨是根據9×9盤面上的已知數字,推理出所有剩餘空格的數字,並滿足每一行、每一列、每乙個粗線宮內的數字均含1-9,不重複。每一道合格的數獨謎題都有且僅有唯一答案,推理方法也以此為基礎,任何無解或多解的題目都是不合格的。
芬蘭一位數學家號稱設計出全球最難的「數獨遊戲」,並刊登在報紙上,讓大家去挑戰。
這位數學家說,他相信只有「智慧型最頂尖」的人才有可能破解這個「數獨之謎」。
據介紹,目前數獨遊戲的難度的等級有一道五級,一是入門等級,五則比較難。不過這位數學家說,他所設計的數獨遊戲難度等級是十一,可以說是所以數獨遊戲中,難度最高的等級他還表示,他目前還沒遇到解不出來的數獨遊戲,因此他認為「最具挑戰性」的數獨遊戲並沒有出現。
輸入格式:
乙個未填的數獨
輸出格式:
填好的數獨
輸入樣例#1:
8 0 0 0 0 0 0 0 0
0 0 3 6 0 0 0 0 0
0 7 0 0 9 0 2 0 0
0 5 0 0 0 7 0 0 0
0 0 0 0 4 5 7 0 0
0 0 0 1 0 0 0 3 0
0 0 1 0 0 0 0 6 8
0 0 8 5 0 0 0 1 0
0 9 0 0 0 0 4 0 0
輸出樣例#1:
8 1 2 7 5 3 6 4 9
9 4 3 6 8 2 1 7 5
6 7 5 4 9 1 2 8 3
1 5 4 2 3 7 8 9 6
3 6 9 8 4 5 7 2 1
2 8 7 1 6 9 5 3 4
5 2 1 9 7 4 3 6 8
4 3 8 5 2 6 9 1 7
7 9 6 3 1 8 4 5 2
這是一道深度優先搜尋題,obviously!!
只要開3個bool陣列,hang[i][j](第i行是否出現過數j),lie[i][j](第i列是否出現過數j),kuai[i][j](第i塊是否出現過數j)。
其中你要自己推乙個(x,y)屬於哪一塊的公式: f(x,y) = (x-1)/3*3+ceil(y/3.0) 或者 f(x,y) = (x-1)/3*3+(y-1)/3+1 (從左往右,從上向下數)
所以這道題的標程就很簡單了:
洛谷 P1784 數獨
題目描述 數獨是根據9 9盤面上的已知數字,推理出所有剩餘空格的數字,並滿足每一行 每一列 每乙個粗線宮內的數字均含1 9,不重複。每一道合格的數獨謎題都有且僅有唯一答案,推理方法也以此為基礎,任何無解或多解的題目都是不合格的。芬蘭一位數學家號稱設計出全球最難的 數獨遊戲 並刊登在報紙上,讓大家去挑...
洛谷 P1784 數獨
洛谷傳送門 數獨是根據 9 times 99 9 盤面上的已知數字,推理出所有剩餘空格的數字,並滿足每一行 每一列 每乙個粗線宮內的數字均含 1 91 9 不重複。每一道合格的數獨謎題都有且僅有唯一答案,推理方法也以此為基礎,任何無解或多解的題目都是不合格的。芬蘭一位數學家號稱設計出全球最難的 數獨...
洛谷 P1784 數獨
數獨是根據9 9盤面上的已知數字,推理出所有剩餘空格的數字,並滿足每一行 每一列 每乙個粗線宮內的數字均含1 9,不重複。每一道合格的數獨謎題都有且僅有唯一答案,推理方法也以此為基礎,任何無解或多解的題目都是不合格的。芬蘭一位數學家號稱設計出全球最難的 數獨遊戲 並刊登在報紙上,讓大家去挑戰。這位數...