a484: K. 以毒攻獨
標籤 : 110學年度二篩試題 DFS Depth First Search
通過比率 : 8人/10人 ( 80% ) [非即時]
評分方式:
Tolerant

最近更新 : 2021-05-28 09:40

內容

這天,tree 又在滑奇怪的網站,看奇怪的東西了。

那是一個有好多好多數學科展的網站,因為他想看看今年會不會有主題是自己看得懂的呢~

忽然,他看到了—「以毒攻獨 - 邏輯型數獨解題及出題程式」。

既然是程式,身為程設班 $10^{th}$ 進階教學的 tree 當然要想盡辦法了解這個主題啊!!

(話說為甚麼這個主題是數學類)

那個主題是說數獨有兩種解法,一個是一格一格代數字並檢查數獨合理性的暴力解,另一種是依靠邏輯,慢慢把每格可能的數刪去的邏輯解。

跟科展作者連絡後,我發現那個邏輯解程式將近1000行...

但是相對暴力解就少得多了!才100行!少了9倍!

那麼就請各位試著刻出暴力解程式吧,大家加油!

能刻出來的就是電神!

(本題已經過作者同意,可以抄他們的題目作為本題標題)

輸入說明

第一行有一數 $n$,代表接下來有 $n$ 個 $9\times 9$ 的數獨。

從第二行開始,每行有 $9$ 個以空白隔開的數字,每 $9$ 行成一個數獨題目。

在這些給定數獨題中,若該格非 $0$,則該格就是數獨上的給定數字,而 $0$ 即相當於數獨題中的待填空格。

輸出說明

對每一個數獨,輸出 $9$ 行數獨答案,每行 $9$ 個數字,同行數字以空白隔開。

(保證只有唯一解,且數獨限填 $1$ ~ $9$ 的整數)

範例輸入
1
0 9 0 8 6 5 2 0 0 
5 4 2 3 9 1 7 8 6 
3 8 0 2 0 0 0 9 5 
6 3 9 0 7 2 5 4 0 
4 2 7 0 5 0 3 6 0 
0 0 5 4 0 6 0 0 0 
9 7 8 0 1 0 0 5 0 
0 0 0 0 2 4 0 7 9 
0 5 0 7 0 9 6 1 0 
範例輸出
7 9 1 8 6 5 2 3 4 
5 4 2 3 9 1 7 8 6 
3 8 6 2 4 7 1 9 5 
6 3 9 1 7 2 5 4 8 
4 2 7 9 5 8 3 6 1 
8 1 5 4 3 6 9 2 7 
9 7 8 6 1 3 4 5 2 
1 6 3 5 2 4 8 7 9 
2 5 4 7 8 9 6 1 3 
測資資訊:
記憶體限制: 16 MB
公開 測資點#0 (30%): 1.0s , <1K
公開 測資點#1 (29%): 1.0s , <1K
公開 測資點#2 (10%): 1.0s , <1K
公開 測資點#3 (9%): 1.0s , <1K
公開 測資點#4 (9%): 1.0s , <1K
公開 測資點#5 (12%): 1.0s , <1K
公開 測資點#6 (1%): 1.0s , <1K
提示 :

演算法叫 $DFS$,有興趣的同學可以查查看。

我知道複雜度看起來很爛...但我保證優化一下 $DFS$ 就會過!

 

$9\times 9$ 數獨規則:

(1) 每行、列皆會出現 $1$ ~ $9$ 各一次。

(2) 由上到下,每三列分割一次;由左到右,每三行再分割一次,可以得到 $9$ 大區塊,其中每區塊皆會出現 $1$ ~ $9$ 各一次。

標籤:
110學年度二篩試題 DFS Depth First Search
出處:
110學年度二篩試題 [管理者:
fdhs109_tree (tree54145)
]


編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」