第五屆校賽第6題
你一定聽說過「數獨」遊戲。
如【圖1.png】,玩家需要根據9×9盤面上的已知數字,推理出所有剩餘空格的數字,並滿足每一行、每一列、每乙個同色九宮內的數字均含1-9,不重複。
數獨的答案都是唯一的,所以,多個解也稱為無解。
本圖的數字據說是芬蘭數學家花了3個月的時間設計出來的較難的題目。但對會使用計算機程式設計的你來說,恐怕易如反掌了。
本題的要求就是輸入數獨題目,程式輸出數獨的唯一解。我們保證所有已知資料的格式都是合法的,並且題目有唯一的解。
格式要求,輸入9行,每行9個字元,0代表未知,其它數字為已知。
輸出9行,每行9個數字表示數獨的解。
例如:輸入(即圖中題目):
005300000
800000020
070010500
400005300
010070006
003200080
060500009
004000030
000009700
程式應該輸出:
145327698
839654127
672918543
496185372
218473956
753296481
367542819
984761235
521839764
再例如,輸入:
800000000
003600000
070090200
050007000
000045700
000100030
001000068
008500010
090000400
程式應該輸出:
812753649
943682175
675491283
154237896
369845721
287169534
521974368
438526917
796318452
資源約定:
峰值記憶體消耗(含虛擬機器) < 256m
cpu消耗 < 2000ms
請嚴格按要求輸出,不要畫蛇添足地列印類似:「請您輸入…」 的多餘內容。
所有**放在同乙個原始檔中,除錯通過後,拷貝提交該原始碼。
注意:不要使用package語句。不要使用jdk1.7及以上版本的特性。
注意:主類的名字必須是:main,否則按無效**處理。
優化,當已經得到了正確答案時,就不進行回溯了,即在遞迴回溯時加判斷
**:
public
class
main6_bak
}//深搜
dfs(0,
0); system.out.
println
(count)
;//72097 14578
}private
static
boolean
dfs(
int i,
int j)
return
true;}
//如果該位置上已經有數字,則不需要填,繼續深度搜尋
if(map[i]
[j]!=0)
else
}//遍歷1-9的數字,尋找符合要求的數字填入
for(
int k =
1; k <=
9; k++)}
else;}
//回溯
map[i]
[j]=0;
}}return
false;}
private
static
boolean
check
(int i,
int j,
int k)
}//一列
for(
int x =
0; x <
9; x++)}
//同色矩陣
int row1 =
0, row2 =
0, col1 =
0, col2 =0;
if(i <
3&& j <3)
else
if(i <
3&& j >=
3&& j <6)
else
if(i <
3&& j >=
6&& j <9)
else
if(i >=
3&& i <
6&& j <3)
else
if(i >=
3&& i <
6&& j >=
3&& j <6)
else
if(i >=
3&& i <
6&& j >=
6&& j <9)
else
if(i >=
6&& i <
9&& j <3)
else
if(i >=
6&& i <
9&& j >=
3&& j <6)
else
for(
int x = row1; x < row2; x++)}
}return
true;}
}
你自己覺得行,你就一定行
今天在惠州市財政局三樓召開了 惠州市維穩綜治資訊管理系統培訓班 參加培訓的有市委政法委 市直單位 包括公安局 信訪局 司法局和勞動保障局 及各縣 區的領導和相關的基層工作人員,參加人數共一百二十人左右。很榮幸我可以參與並擔任講師這一角色,會議的議程是這樣的 1 領導講話 2 vpn的安裝講解 3 惠...
你一定很好奇! RPA是什麼
rpa robotic process automation 機械人流程自動化 可以看出rpa是由這三個單詞簡化而來的,那麼首先第一步,我們不妨從這裡開始。術語有有三個 機械人,過程和自動化。讓我逐一向您解釋這些術語。機械人 模仿人類行為的實體稱為機械人。流程 由機械人完成的任何過程,無需人為干預。...
你以為的不是一定就是你以為的
我總樂觀的以為,只要a,就會b。反過來講,這件敘述的事,如果我認為它可以完成,但是我無法證明它可以完成,難道就完成不了了嗎?如果a存在,我們就應該找到證據,當我們找不到證據的時候,就都會認為a不存在。這個爭論在無神論,還有很多超自然神話中都有這樣的爭論。我在上家公司,產品總監要求在某個過程中,加個 ...