洛谷題目 P1784 數獨

2021-10-06 06:37:46 字數 1689 閱讀 9158

題目描述

數獨是根據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

洛谷p1784 數獨

其實直接每個數字都暴力填一遍就行了。下面是我的**:

#include

//萬能標頭檔案

using

namespace std;

int tu[10]

[10];

//輸入陣列

void

show()

//輸出函式

exit(0

);//注意,此處要用exit(0)。用return的話不會退出dfs函式,會增加運算量。

}bool

check

(int x,

int y,

int n)

//判斷要填的數字是否重複 ,重複就返回0

//判斷每個方陣小格仔數字是否重複

for(

int i =

0; i <

3; i++

)for

(int j =

0; j <

3; j++)if

(tu[i + x/3*

3][j + y/3*

3]== n)

return0;

return1;

//無重複

}void

dfs(

int x,

int y)

//搜尋

if(tu[x]

[y]==0)

//如果沒填過的 }}

}int

main()

謝謝**!>_<

洛谷 P1784 數獨

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

洛谷 P1784 數獨

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

洛谷 P1784 數獨

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