首頁 科幻

我真是外星人

第4章:四道題

我真是外星人 seed合集 2267 2022-07-08 12:06:44

  林景擺爛了好一會(huì),大抵是看劉希和顏安都還沒有放棄,搞得他也有點(diǎn)不好意思,重新振作起來后將題目閱覽了一遍。

  剛才劉希與顏安的對(duì)話他都聽到了,知道這次考試的難點(diǎn)在后五題上,于是率先看起了倒數(shù)第五題。

  有n個(gè)人,m個(gè)課。每個(gè)人有一個(gè)擅長的科目的集合,范圍是零到二的m次方,需要選擇一個(gè)兩個(gè)人的隊(duì)伍,使得這兩個(gè)人每個(gè)人都至少有一門科目是他會(huì)但對(duì)方不會(huì)的,求選擇的方案數(shù)。

  其中n的范圍是二到十的五次方,m的范圍是二到二十一。

  經(jīng)過一陣思考后,林景初步確定了解題思路,具體實(shí)現(xiàn)還得要上手敲代碼把他沒注意到的細(xì)節(jié)部分處理好才行。

  看了一眼正在努力敲代碼的顏安,才發(fā)現(xiàn)他那雙手就沒停下來過,仿佛正在敲的不是代碼,而是小說一樣。

  可就算是小說,那也該偶爾停下來思索一番才對(duì)。

  這種一刻不停地狀態(tài),林景只有在寫基礎(chǔ)題的時(shí)候才會(huì)進(jìn)入,稍微有點(diǎn)難度的算法題就需要謹(jǐn)慎考慮慢慢寫了。

  顏安那架勢看著就不像是在寫最后五題的樣子。

  他不會(huì)是想用窮舉法破解吧?

  林景腦袋里沒由來的冒出這么個(gè)念頭,畢竟有的時(shí)候碰上實(shí)在不會(huì)的題目,他們也會(huì)用窮舉法試試,說不定能因此獲得些解題思路。

  只是現(xiàn)在不比平時(shí)訓(xùn)練,他們是在考試在競爭,哪有那么多時(shí)間浪費(fèi),有這寫窮舉法的時(shí)間還不如多寫兩道題。

  一想到這,林景就知道該自己出手了。

  “要不讓我來吧?我已經(jīng)有思路了?!迸牧伺念伆驳募绨?,林景壓低聲音說道。

  隊(duì)伍的攻堅(jiān)手是他,讓一個(gè)大一新生來做這幾道最難的題目,實(shí)在是有些為難人家了。

  林景對(duì)自己之前的擺爛行為感到非常羞愧,連顏安都沒有放棄,他作為隊(duì)長怎么能好意思做出這種事來。

  哪知顏安頭也沒回,兩眼盯著屏幕,上面的代碼一行接一行飛快的冒出,“學(xué)長等下,我就快寫完了?!?p>  隨著最后一個(gè)關(guān)鍵字被敲出,顏安的雙手終于停了下來,機(jī)房內(nèi)陷入了短暫的沉寂中。

  “學(xué)長直接開始寫下一題吧,前面的我都寫了,這道題我思路有點(diǎn)不太對(duì),正愁不知道怎么寫呢?!?p>  顏安指著紙張上的最后一題說道,讓林景聽得一愣一愣。

  這才過去多久?就已經(jīng)寫完了四題?

  林景下意識(shí)的看了眼時(shí)間,確認(rèn)了現(xiàn)在距離題目發(fā)到他們手上才只過了二十分鐘而已。

  又看一眼身側(cè)劉希學(xué)姐的進(jìn)度,也是四題,乍一看好像兩人進(jìn)度一樣,可這才是不對(duì)勁的地方。

  劉希寫的那是試題的前四道,堪稱最簡單的四題,只是開胃菜而已。而顏安寫的那可是倒數(shù)五題,是硬得啃不動(dòng)的大菜。

  他兩的速度居然一樣?

  林景感覺這場競爭忽然變的玄幻起來。

  且不說顏安寫的那幾題可能連他都無從下手吧,就算是用窮舉法,那也不可能寫這么快。

  除非他那四道題都是亂寫的。

  不是沒有這種可能,就像他在這種重要時(shí)刻還在擺爛一樣。

  林景懷疑的看了眼顏安,“我只是有了倒數(shù)第五題的解題思路而已,最后一題暫時(shí)還沒看。”

  他頂替了顏安所坐的位置,將注意力放在了顏安的代碼上。

  是不是亂寫的他一看就知道,也不用順著代碼的邏輯去捋,將倒數(shù)第五題的代碼找出來并拉到最底下,發(fā)現(xiàn)只有二十五行。

  這種簡單粗暴的方式印證了他的猜想,顏安果然是在亂寫的,因?yàn)榧幢闶撬麃韺戇@道題,也很難將代碼量壓縮到這種地步。

  雖然他還沒開始寫,但初步預(yù)估就得要四十行代碼,完全不是顏安這種二十五行代碼能解決的題。

  如果顏安寫的其他題目也是像這樣只有二十幾行的話,那二十分鐘搞定四題完全不成問題。

  可這有用嗎?代碼追求的是短小沒錯(cuò),但還有個(gè)最重要最基本的前提是得能運(yùn)行出結(jié)果。

  沒有結(jié)果的代碼,還不如窮舉法。

  如果靠短就能拿分的話,一句“Hello,world”豈不就是全場最高分。

  林景默默嘆了口氣,內(nèi)心早已麻木。

  他還以為學(xué)弟是不放棄精神,結(jié)果等他振作起來一看,哪里是不放棄,這分明是擺爛加自暴自棄加自欺欺人。

  痛苦的揉了揉太陽穴,刪了重來吧,連看都不想看直接就選中全部按下了退格鍵。

  正在一邊等另一臺(tái)電腦啟動(dòng)軟件的顏安注意到他的動(dòng)作,“學(xué)長你刪我代碼干嘛?”

  這未免也太過分了。

  就算是以前他發(fā)現(xiàn)了學(xué)長的錯(cuò)誤也沒有這么干過啊,他還好心好意的加上備注指出錯(cuò)誤并提出自己的觀點(diǎn),然后發(fā)回給學(xué)長。

  他這么好心,結(jié)果換來的卻是這樣的對(duì)待。

  一把從學(xué)長手中搶過鍵盤,還好能撤銷刪除操作,顏安將代碼恢復(fù)后立即點(diǎn)擊運(yùn)行。

  沒等多久,控制臺(tái)上出現(xiàn)了代碼的運(yùn)行結(jié)果,“你看,這代碼是沒問題的,可以運(yùn)行?!?p>  關(guān)注到這邊動(dòng)靜的老師也走了過來,低頭看了一眼屏幕,滿意的點(diǎn)了點(diǎn)頭。

  “結(jié)果確實(shí)正確,沒想到你這兩天技術(shù)提升蠻快嘛,是不是掉到哪個(gè)懸崖下面撿了武功秘籍?。空f出來讓老師也去撞撞大運(yùn)?!?p>  對(duì)于他兩天沒有參加訓(xùn)練的事,老師已經(jīng)不計(jì)較了,至少這技術(shù)水平提升了。

  放在兩天前,顏安就算能寫出這道題來,也很難想到用高位前綴來解題,這得需要顏安對(duì)所運(yùn)用的方法非常熟悉才行。

  出乎林景預(yù)計(jì)的結(jié)果讓他傻了眼,呆滯的看了一眼老師,又看了一眼顏安,發(fā)現(xiàn)自己才是那個(gè)無知又?jǐn)[爛的家伙。

  連忙給顏安道歉,好在被發(fā)現(xiàn)的及時(shí),不然的話林景都不知道自己該怎么取得顏安的原諒。

  在這之后,已經(jīng)知道倒數(shù)第五題被顏安完美解決的他并沒有立即開始對(duì)下一題動(dòng)手,而是認(rèn)認(rèn)真真的開始閱讀起顏安的代碼。

  畢竟如果讓他來寫,怎么著也得四十行起步,而且要比顏安的代碼更復(fù)雜,所以就很好奇顏安用的是什么方法,和他比優(yōu)點(diǎn)在哪。

  這一看,就沉迷進(jìn)去了。

  代碼精簡其中的思想不容易領(lǐng)會(huì),他想了好一會(huì),才明白這是運(yùn)用了高位前綴和來解題。

  由于正面枚舉并不好做,顏安就考慮反面情況即題目中兩人會(huì)的領(lǐng)域,其中一個(gè)人是另一個(gè)人的子集。

  ……

  那么對(duì)于某一個(gè)狀態(tài)S,直接就能得到有多少個(gè)狀態(tài)T,滿足T包含于S。

  得出答案為 n*(n-1)/2再減掉非法方案。

  理解代碼后的林景徐徐吐出一口氣,不得不對(duì)顏安刮目相看,高位前綴難嗎?

  難也不難,反正他沒想到用這個(gè)方法解題,那對(duì)他來說,就是一個(gè)需要補(bǔ)足的點(diǎn)。

  看完一題的他立即進(jìn)入到下一題,這一次沒有刪除顏安的代碼,而是在確定能夠運(yùn)行后再度全身心投入到閱讀代碼中去了。

seed合集

每天中午和晚上更新,求收藏、推薦票、追讀。拜謝

按 “鍵盤左鍵←” 返回上一章  按 “鍵盤右鍵→” 進(jìn)入下一章  按 “空格鍵” 向下滾動(dòng)
目錄
目錄
設(shè)置
設(shè)置
書架
加入書架
書頁
返回書頁
指南