第230章 山外有山

  第230章 山外有山

  個人解答的第一道程序實操題難度一般,屬於剛看完就有思路並且沒有太多卡殼點的基礎題。

  考驗基本功與熟練度。

  李顏剛看完題目準備上手,餘光掃到大屏幕出現了另一條提示:

  「第一階段題目第二位完成:B-7,新北中學,鄧宇迪,用時29:28」

  他分神看的這一瞬間,又有第三條:

  「第一階段題目第三位完成:A-11,新安中學,鄭達,用時29:30」

  這人李顏知道是誰,新安中學真正應該被重視的潛力股,高一拿下了聯賽高中提高組第二的成績,第一正是鄧宇迪。

  李顏笑著微微點頭,感慨自己果然沒有看錯人,不過也多了一點緊迫感。

  挺好的,這才有競賽的感覺。

  無敵確實是會寂寞的,所以他需要更大的舞台,哪怕是一些挫折打擊也無所謂。

  屏幕只顯示前三位完成的數據,從顯示比例來看,應該是三階段的前三位完成記錄會同時在上邊顯示……三階段都是第一個完成的話,確實能狠狠刷一波存在感。

  李顏並不想分神,也確實沒有分神。只是掃了這麼一眼,腦子就稀里嘩啦分析一堆東西。

  手上的動作是不帶停的,基礎題目思路就那樣,比速度的話,考驗的還是對於寫代碼的熟練程度。

  很快這道題就被解決了,李顏自信點擊提交,看到了下一題:

  素數,是僅有其本身和數字1兩個約數的數,例如1、3、5、7、17、101和10007……

  李顏一瞬間似乎看到了出題老師自信的表情,這個開頭看起來,題目難度應該會提升一個台階。

  「輸入一個單詞集合,每個單詞由a-z的字母組成。每個字母對應一個特定的值,字母a對應1,b對應2,以此類推。

  若一個單詞的字母總和為素數,則這個單詞是素單詞(prime world),請編寫程序,判定一個單詞是否為素單詞。

  如果一個單詞字母的和為素數,則輸出It is a prime word,反之則輸出It is not a prime word」

  李顏其實馬上就有思路了,單詞長度有限,對應數字有限,可以算出來一個上限數字,再把範圍內的素數篩選出來做一個集合u,然後直接套公式計算單詞字母對應的數字和x,將結果跟素數集合直接比對,結果是u[x]=1就輸出It is a prime word,反之同理,問題得解。

  在李顏看來,後邊套公式計算並不是這道題真正的難度,真正考驗的是素數篩選。

  要知道,「吸入矽酸鹽細末或石英岩灰而形成的肺塵埃沉著病」的英文,是pneumonoultramicyoscpicailicovolcanoconiosis,特麼的有整整45個字母。

  這還不一定就是最長的,只是李顏知道的最長單詞,就算取平均值13,來一個50個字母的單詞,上限就去到650了。

  這個素數可不太好篩啊……

  不對,問題不在這,如果不知道上限在哪,萬一這世界上有1913個字母組成的單詞呢?

  某些專業名詞鬼知道會整出什麼來,那這素數篩選難道還要給算到兩萬去嗎?

  這難度可不是鬧著玩的啊。

  一瞬間,李顏意識到不對,這還不是最難的雙人合作題,他這種全能戰神都舉棋不定的問題,其他人玩蛇?

  他鬼使神差地把滑鼠滾輪一推:

  「輸入給出一個單詞集合,單詞字母隨機組成,每個單詞一行,字母數量不超過20」

  我尼瑪……他一瞬間差點把手摳進鍵盤裡,怎麼看題目都像結束了,怎麼偏偏這一行給藏了起來!

  不超過20,隨機給定,也就是上限值不超過520,只需要篩選1到520之間的素數就行了。

  怎麼篩?硬篩。

  李顏背過1到300的素數集,剩下的排除一些顯而易見的合數之後,需要計算的也並不多。

  媽的,早知道直接背到1000了,這會兒不是直接嘎嘎亂殺?

  一道並不算太難的題愣是給李顏自己整出了緊張感,素數篩選集一搞完,他馬不停蹄地開始構建公式。

  最終他連檢查都不做,在寫完程序的那一刻直接點擊了提交。

  叮咚!

  「第二階段題目首位完成:B-7,新北中學,鄧宇迪,用時34:41」

  「第二階段題目第二位完成:E-12,新北一中,李顏,用時36:54」

  臥槽?全場都躁動了,有些人才剛剛開始進入第二階段,特麼有兩個搞完第二階段了?

  這個新北一中不是初中嗎?初中生裝什麼……然後他們看清楚了名字是李顏,玩真的?

  金理事旁邊的年輕女性,也就是臨江省計算機協會的張副主席有些驚訝,「四個半小時的考試,兩個階段只用了一小時?是不是太誇張了點?」

  「超出預期,不是挺好的嗎?」金理事笑道。

  不過他內心其實不太有譜,要是李顏最後就是在譁眾取寵,他的臉面也掛不住啊。

  台下的李顏有點震驚,第二階段的題目鄧宇迪開始得比他慢點,就算他一開始沒看全題目耽誤了點時間,這鄧宇迪至少也是跟他花費基本一致的時間解決二階段的。

  李顏很自信他的手速鄧宇迪比不上,所以基礎題李顏應該更快點。

  那這個鄧宇迪靠什麼在第二題比背了1到300之間素數的李顏快?

  兩個可能,一是鄧宇迪背了1到520之間的素數;二是這傢伙直接寫了個程序篩選素數——而且還很高效。

  不管是哪個可能,這傢伙確實是個狠角色啊……

  不過現在該把精力集中在第三階段,也就是合作題目上了,這道題無疑會是今天最難——或者工作量最大,只是陳凡還沒搞定,李顏暫時只能自己琢磨:

  「給出直線的若干條線段,直線是X軸,線段的坐標為[Li,Ri]。求最少要用多少條線段可以覆蓋區間[0,m]。」

  李顏微微皺起眉頭,這題目看起來不太對勁。

  「輸入的第一行給出測試用例的數目,後面給出一個空行。

  每個測試用例首先給出一個整數M(M小於等於5000大於等於1),接下來若干行,每行以『Li Ri』表示線段……」

  「輸出:對每個測試用例,輸出的第一行是一個數字,表示覆蓋區間[0,m]的最少線段數。接下來若干行表示選擇的線段,給出線段的坐標,按左端排序。若無解,即[0,m]不可能被給出的線段覆蓋,則輸出0……」

  難度確實有,李顏看完題目沒有立馬上手,這種類型的題要是匆匆忙忙整出了bug,修程序的投入的時間成本會更高。

  必須先有一個足夠完整可行的思路。

  大屏幕也有了二階段的第三位完成者:

  「第二階段題目第三位完成:E-11,新北一中,陳凡,用時45:02」

  45分?他可不止晚了這麼幾分鐘,看來陳凡回答筆試題目花的時間還不少。

  不過也是,「快」本來就不是本次考試的主要需求。

  「李顏?」陳凡的聲音從耳機傳來。

  「收到。」

  「你怎麼這麼快?那個鄧宇迪也瘋了,一個個這麼快,沒必要啊!」

  確實,最後一題雖然難搞,三小時怎麼都夠了,以保證正確率為基礎,在這之上提升思路的精彩程度,才是首要的事情。

  李顏純屬想裝逼,就是不知道這位鄧宇迪是怎麼回事。

  「你不也挺快的?第二階段殺進前三了。」李顏確實感到驚訝,陳凡一直以來都不以速度為優勢,居然能在強手林立的高中主場拿下一個展示位。

  「噢,我背了0到600之間的素數,上一題省了好多功夫。」

  您?

  吐槽的話就先免了,還是看看題吧。

  「出名要趁早啊,陳凡。」

  (本章完)