正文 第096章 子母鎖(上)

許毅接到周思筠電話的時候已經身在C市第一中學了,H省的選拔賽在將在這裡舉行。掛了周思筠的電話之後,許毅就將電話關機了。他知道這次肯定是避不過去,為了將影響減小到最小,他才對周思筠那麼交待,他可不想讓別人對自己產生興趣,尤其是搞情報的人。

他已經打定主意,盡量裝成性格內向,不愛說話,平時就喜歡編程的形象。然後……然後就是走一步算一步了。

黑客不喜歡政治,但政治往往會找上黑客。

「大家不用緊張,就像平時那樣就行,一定要看清楚試題再下筆,知道嗎,不要由於粗心而丟分……」首先要進行的是筆試,筆試之前,柳葉在仔細交待相關細節。

「知道了!」幾個人都很有自信地回答。

筆試部分的試題很簡單,有很多都是要記憶的東西,例如計算機的一些基本部件以及他們的具體功能等。稍難一點的就是一些融合了一些數學和計算機知識的應用題了。例如有這樣的一個題目:

處理器A每秒處理的指令時處理器B的2倍。某一特定程序P分別編譯為處理器A和處理器B的指令,編譯結果處理器A的指令數是處理器B的4倍。已知程序P在處理器A上執行需要1個小時,那麼在輸入相同的情況下,程序P在處理器B上執行需要( )小時。

A.4 B.2 C.1 D.1/2 E.1/4

最後的大題目有幾個問答題和一個閱讀程序題,這些題目對許毅來說自然是一點問題都沒有。他很快就搞定了,懶得檢查,就出來了。柳葉見到之後,把他好說了一通,不過許毅仍然是一副無所謂的樣子。

上機編程,軟體環境為Debian Linux,編譯器有Free PASCAL,也有GCC,也就是說編程語言可以從PASCAL和C語言這兩種語言中任選一種,許毅選的是他拿手的C語言。

登錄用戶名和密碼都是guest,開始參賽選手可以事先熟悉一下機器操作。許毅上來後所做的第一件事就是查看計算機的網路連接。要是這些機器組成了一個區域網,如果有人想作弊的話,那就容易了。不是給別人傳答案,而是用自己的機器去攻擊別人,讓他們的系統出問題……不過比賽組織人員好像已經考慮到這個問題,所有的機器都是獨立的,網路連接斷開,連IP都沒有。

無趣。許毅無聊地打了個呵欠。然後開始看比賽的一些具體要求。因為是比賽,所有步驟都規定得一清二楚,什麼「試題名稱縮寫」、「保存目錄路徑」、「輸入輸出文件名」等等等等一大堆的規定。要是不按照裡面的來,就算你做得再好,也是白搭。

終於看完了那一大篇的說明和注意事項,許毅便開始看題。試題的通常格式是「題目描述」,然後是「輸入文件」,「輸出文件」,最後還會給出幾個樣例數據。總共有四個大題,每題對應一個源程序,源程序要能夠符合題中給出的樣例,當然,也得符合其他合法數據。另外還對程序的運行時間和效率有規定。

這幾個題目對許毅來說實在是沒有任何挑戰,很快他就做到了最後一題:無聊的排序。

題目為:你弟弟有一項家庭作業需要你幫助完成。老師給了他一列數,需要他把這些數按升序排列。你可以每次交換兩個數的位置,而一次交換的代價被定義成被交換的兩個數的和。寫一個程序,用最小的交換代價和來幫助弟弟完成這項無聊的排序工作。

輸入:第一行為一個數N(N<=100),第二行為互不相同的N個數。

輸出:輸出一個數,為最小的交換代價和。

稍看了一眼,許毅就知道本題可以抽象為:把一列數從初始狀態變成目標狀態,即完成一個置換。根據群論知識,置換可以分解為s個不相交的循環的乘積。顯然,由於每次只有被交換兩個數的位置改變,所以要想改變一個數的位置,只能通過交換完成,而不能像插入排序一樣,可以藉助其他數來完成,即各個循環是相互獨立的,所以應該依次完成每個循環。為了得到盡量少的交換代價,在每個循環中較好的方法是讓循環中最小元素或全局最小元素參加所有的交換。至於用循環內的最小元素還是用全局中的最小元素,就要比較哪個交換代價更小了。將它作為壓軸題相信對高中生或初中生來說難度應該很大吧,可在許毅面前已經變得和「Hello,World」程序那樣容易。

在腦海中想好怎麼編寫,許毅調出GCC,一口氣就將這個演算法給編寫出來了。把測試數據代入試了幾次,改動了幾個小錯誤,大功告成!看了看周圍的同學,有的在奮力輸入,有的則在仔細讀題,每個人都是一臉認真嚴肅的樣子。再側了身子看了看前面兩排的黎姿姿,發現她在用筆在稿紙上畫著什麼。而她不遠處的李帥則有些撓頭搔腦的,好像很不安份的樣子。

呵呵,看你這關怎麼過。許毅正東張西望,結果被監考老師看到了,她走了過來。

「同學,請不要到處亂看。」

得,她還以為我想作弊呢。

「哦,好的,可是我已經做完了。老師,我交卷。」說完,不理一臉驚異的監考老師就走了出去。當然,後面跟著的還有一大片羨慕,崇拜,嫉妒的目光。

來到外面許毅想到就這麼回去,肯定又會被柳葉說,於是他轉而向一中的校外走去。好不容易來這裡一趟,逛逛街也是好的嘛,正好可以給蘭蘭和小玉買點禮物。許毅這樣想著一路吹著口哨。

經過校門外的時候,他看到一個美女正從外面走來,旁邊還有一個酷酷的帥哥。

「身材很不錯!」許毅和美女錯身而過的時候這樣想,這個美女身上透露著一股健康美,挺拔的身材,竟然比許毅要高一個頭,讓他鬱悶不已。雖然最近他的身高看長,但他還是覺得太慢了。不過他心中也暗自幸運,看這個勢頭,這個身體應該不會是三等殘廢。

在街上問了人,找到C市的商業街,到精品店看了好大一會兒,還是沒有決定給她們倆買什麼好。實在是沒有這方面的經驗,無奈中,只好問精品店的老闆了。

老闆並沒有因為許毅看上去很年輕而輕視他,問道:「是給你女朋友買嗎?」

「算是吧。」許毅尷尬地點了點頭,「還有一個是妹妹。」

老闆是一個比較年輕的MM,長得也挺不錯的,她聽完後說道:「這樣啊,給女朋友可以買香水,包包之類的,當然了,還可以買一些比較精緻的首飾,這些首飾都不是很貴的。給妹妹嘛,這些小飾物也可以送,對了,冬天也快到了,還可以送圍巾,手套之類的。」

被她這麼一說,許毅覺得好像什麼都可以買了,一時間又是不好拿主意。最後反覆思量之下,他給蘇蘭買了一個正流行的包包還有一瓶阿瑪尼的香水。給顏玉則買了一副白色的小羊皮手套。這麼三個東東,竟然花了他將近一千大洋,不過這麼點錢許毅還是捨得花的。

從精品店出來,許毅看看時間,他們差不多要考完了,於是便往回走,在途中,突然看到一個首飾店,他心中一動,跑進去轉了一圈,回來的時候手中多了一個鑽戒。

回到學校的時候,還差五分鐘到時間,遠遠地看見柳葉他們站在那邊等著,比較奇怪的是她身邊還有兩個人,一男一女,分明是許毅出去的時候遇到的那兩個帥哥美女。

「許毅!」柳葉突然看到許毅從外面回來,「你……怎麼從那邊來的?」

「我去外面買了點東西。」許毅小聲地說。

「你……」柳葉好像氣極了,一副恨鐵不成鋼的樣子。

「你就是許毅?」旁邊的美女說話了,語氣中好像還帶著些許的興奮。許毅看到這兩個人的眼睛都好像在發光。

「是……是的,你們是……」

「我們是北京來的,特地找你幫忙的。」美女即劉姍,她微笑著說道。

這麼快就找來了?許毅心中驚訝,不過臉上卻沒有表現出什麼。

他腦袋一縮,小聲地說道:「北京?我……幫什麼忙……」

柳葉雖然很奇怪許毅的樣子,但許毅畢竟是她帶來的學生。她上前把許毅擋在身後說道:「現在他來了,你們總該說到底有什麼事了吧?」

劉姍見她這個樣子連忙解釋:「柳老師你別誤會,我們真的沒有惡意,確實是找他幫忙。」

「他一個小孩子能幫你們什麼忙?你們到底是幹什麼的,為什麼不表明身份!」

酷酷的林峰皺了皺眉頭,他們兩個來到C市之後就直接奔這裡來了,連公安局都沒有去打招呼,現在她這個樣子,如果不表明身份估計人是帶不走。於是,他向劉姍點了點頭。

「柳老師,真是對不起,這是我的證件,你檢查一下。請不要緊張,我們並沒有惡意。」

柳葉將劉姍的小本子接過來看了一下,那是個綠色的小本子,看完之後,她的眼中滿是驚異,嘴巴成「O」型看這劉姍。許毅覺得奇

上一章目錄+書簽下一頁