第一百零八章 怎么解
“N皇后問題,其實還是比較簡單的。”張棟梁慢慢說道。
聽到這話,在座的部分高中生受到了暴擊。
“先說說約束條件?!?p> 眾人心道果然。
“第一:大家沒有鍵盤,也沒有編譯器,需要用紙和筆,30分鐘之內(nèi)寫好代碼給我,超時棄權(quán)。編程語言要求為C/C++/JAVA,這需要考察各位對編程語言基本的理解?!?p> “第二:這里沒有最短運(yùn)行時間,也不限你們的內(nèi)存使用量,你們可以用任意方法。但是,方法最優(yōu),資源使用最少者勝,這個我來判定?!?p> “第三:勝者需要你們隊伍中選出最多兩人來講解你們的方法和思路,講不出視為失敗。那我就省下一本書了?!?p> “第四:你們只有一次提交機(jī)會,大家熟悉的COI賽制,可以有微小錯誤,但是不能有邏輯錯誤,關(guān)鍵邏輯寫注釋,字跡必須清晰?!?p> “第五:你們第一堂課需要請假了?!闭f到這里,張棟梁笑了起來。
“那么,開始!”
話音剛落,他手機(jī)上的計時器再次從零開始,飛快轉(zhuǎn)動起來。
而底下的學(xué)生們愣了幾秒鐘之后開始討論,一時間教室里很是熱鬧。
“一定是故意的,出這種難度的題……”
“我郁悶啊,我做過八皇后,但是用的是遞歸,而且30分鐘太少了。”一位高一的學(xué)生郁悶地說道。
“我用鍵盤寫出來都得十分鐘多,別說手寫了,我還沒怎么用手寫過代碼呢?!?p> “這個題誰會去深鉆啊,做出來沒問題,但是30分鐘現(xiàn)想的話有難度了,而且要作出最優(yōu)的解法更有難度了?!币晃桓叨膶W(xué)生抓耳撓腮地說道。
“關(guān)鍵是,寫出來后,并不知道其他人的解法,所以一定會反復(fù)優(yōu)化自己的解法,這樣沒有一個目標(biāo),很難,非常難。”高三的四大天王相對冷靜得多。
“只能先用最快的方法解出,然后再快速優(yōu)化,排除遞歸?!币晃粩?shù)競國一且NOIP省一的高三學(xué)長沉思起來。
眾人的好勝心被激發(fā)了出來,這種比賽并沒有分值,只有勝者。所以,每個人不知道其他人方法的情況下,只能盡力把自己的方法寫的更好,更巧妙,降低各項復(fù)雜度。這樣,獲勝的概率才更高。
壓力籠罩在每一個人的頭頂,畢竟,如果時間足夠,只是寫出這個算法,在場除開某小白團(tuán)的成員外幾乎所有人都能熬出來。
但是,如果時間縮短到30分鐘,估計最多能有一半隊伍能寫出來就不錯了,這是在可以多次修改和編譯的情況下。如果是用紙和筆進(jìn)行白板編程……這個數(shù)字就變得很不明朗了。
孟響呆呆的聽著張老師宣布完規(guī)則,然后看著其他人討論起來,他轉(zhuǎn)頭看向妹妹。
“什么是N皇后?”
孟夢:“……”
看著孟夢呆滯的表情,孟響心里有些平衡了,笑著說道:“原來萌萌你也不知道呀。”
“哼!”孟夢聽到哥哥的話非常生氣,傲然道:“我當(dāng)然知道,我剛剛只是被哥哥你的笨給驚到了而已。”
孟響對妹妹投向懷疑的眼神,不屑地說道:“你這丫頭,才學(xué)計算機(jī)幾天,連代碼都不會寫,知道個屁,別吹牛,哥哥又不會笑你。”
剛剛說完,他就感覺腰子一疼。
“嘶……”
“我知道不知道!”孟夢瞇起眼睛,手微微用力,威脅道。
孟響冷吸一口氣連忙討?zhàn)垼骸爸乐溃瑝羯袂锶f代,一統(tǒng)長星?!?p> 孟夢聽到后,非常滿意的松了手,又心疼地幫哥哥輕輕揉了揉腰間的軟肉。
“那你說說這個玩意兒是啥?!泵享懸贿呄硎芡纯嗪蟮目鞓罚?,一邊把紙和筆擺在了妹妹面前。
孟夢收回了手,拿起哥哥遞來的中性筆,一邊畫圖一邊說道:“其實,這并不僅僅是一個計算機(jī)問題,這是一個數(shù)學(xué)問題?!?p> 孟響點了點頭,收起了開玩笑的表情,示意妹妹繼續(xù)。
“我很早之前就有看過這類問題,那會兒特地好好琢磨了一下這些問題。”說完,孟夢在紙上花了幾個格子,然后問道:“哥哥你知道八皇后嘛?”
孟響用力點了點頭,他當(dāng)然聽過。
“那你知道這個題的規(guī)則嗎?”孟夢再次問道。
“.…..”孟響同學(xué)用力搖了搖頭,他沒玩過國際象棋,而且只是聽過這個名詞而已。
見哥哥搖頭,孟夢露出了勝利般的笑容,孟響甚至能看到妹妹牙齒上的小窟窿。
“我先給哥哥解釋一下八皇后吧,八皇后就是在一個8*8的棋盤上,你擺上8個棋子,讓他們?nèi)我鈨蓚€棋子不能處在同一行,同一列,或者同一斜線上,就是一種成功的擺法,我們說的八皇后問題,就是要求出,一共有多少種這樣的擺法?!?p> 孟響腦中開始開始遍歷……
十秒鐘之后。
“媽賣批,我核心不夠!我要加核?!泵享懕闅v了不到十種之后,就放棄了這種愚蠢的方法。他對妹妹點了點頭問道:“那一共有多少種?”
孟夢稍稍思考了一兩秒鐘說道:“我記得八皇后問題的解是92種?!?p> 孟響:“.…..”
這要是個求答案的題目該多好呀。
“那,沒法用筆算出來嘛?”孟響小心翼翼地問道。
果然,妹妹投來了鄙視的眼神,又好氣又好笑地把筆往孟響手里一塞:“給你筆,你算!”
孟響:“.…..”
“當(dāng)年高斯也就算出76種,而且不知道花了多少時間,這個30分鐘我們算什么?而且,這是N皇后問題,要是9皇后呢,10皇后呢,更多的皇后呢?”
孟響聽后內(nèi)牛滿面,這次,他活生生被鄙視的體無完膚!
“那我們要怎么辦……你會寫代碼嗎?那只能靠你了,萌萌千秋萬代,一統(tǒng)長星。”孟響儼然成了一個跟班小人物。
“還沒來得及學(xué)呢。”孟夢聽后翻了個白眼,她這段時間就看了看算法和數(shù)據(jù)結(jié)構(gòu)的書,數(shù)學(xué)底子很強(qiáng)的她看起來絲毫不費(fèi)力,至于代碼……她只會偽代碼。
“那,你先給我說說這個題要怎么做吧,免得待會兒聽都聽不懂?!泵享懴肓讼胝f道,然后又把筆塞給了妹妹。他們反正是來觀光的,做不做出來也無所謂了。
孟夢接過筆,微微嘟了一下嘴之后才細(xì)細(xì)地說道:“這個問題,可以使用多種方法來解,我了解的有遞歸,枚舉法,還有就是回溯法?!?p> “我覺得,這個的最優(yōu)解法應(yīng)該是怎么利用好回溯法?!?p> 你是小天才,你數(shù)學(xué)好,當(dāng)然什么都聽你的咯。
孟響腹誹道。