第261章 網絡預選賽開始,現場教學,在實戰中提升!
兩周後。
十月二十八號,周一。
早上八點半,燕北大學計算中心,二樓機房。
門口又貼了一張告示:【第41屆ACM國際大學生程序設計競賽網絡預選賽……比賽時間:9:00-14:00】
機房裡面已經坐了三支隊伍,九個人,整整齊齊。
這次不是校內選拔那種小場面,而是全國性的網絡預選賽。
來自全國各大高校的幾百支隊伍,同時在線上廝殺。
晉級名額只有六十個。
競爭激烈程度,比校內選拔高了不止一個檔次。
「代碼敲不隊」在最左邊,林浩然坐C位,雙手抱胸,表情嚴肅,眼神裡帶著一股「老子今天必須贏」的狠勁。
「BUG殺手隊」在中間,趙克林推了推眼鏡,面前擺著三瓶紅牛,一副準備拼命的架勢。
「大唐隊」在最右邊,江辰靠在椅背上,閉著眼睛,跟睡著了似的。
唐若曦坐在他旁邊,正翻著筆記本,複習前幾天講過的知識點。
陳小胖坐在另一邊,面前擺著一袋薯片、一包辣條、一瓶可樂,跟來野餐似的。
林浩然回頭看了一眼,嘴角抽了抽。
又是這個配置。
他想起上次校內選拔賽被支配的恐懼……兩小時,十三題,滿分。
全程江辰一個人秀,另外兩個一個當輔助一個當吉祥物。
「這次不一樣。」
林浩然小聲對隊友說,「網絡預選賽是全國性的,題目難度比校內賽高一個檔次。他們大一新生,基礎再紮實,也扛不住這種強度。」
隊友點頭:「對,而且這次有五小時,拼的是耐力。江辰再強,一個人也撐不了全場。」
「咱們只要穩住,肯定能贏。」
兩人對視一眼,信心滿滿。
趙克林那邊也在分析。
「大唐隊上次贏,是因為題目偏基礎。這次網絡賽,難題占比更高,他們大一新生沒經驗,肯定卡殼。」
他擰開一瓶紅牛,灌了一口:「咱們的機會來了。」
九點整。
大屏幕上,題目跳了出來。
共十三道題,五個小時。
其中基礎題三道,中等題四道,難題五道,壓軸題一道。
跟上次校內選拔賽的題型分布差不多,但難度明顯高了一個檔次。
尤其是最後那道壓軸題,題目描述就占了半屏,光看懂題干就得花不少時間。
陳小胖湊過來看了一眼,臉都白了:「臥槽,這題目也太多了吧?光讀題就得半小時!」
江辰沒理他,直接分配任務。
「小胖,前三道基礎題,你先看。」
「行!」
「若曦,中間四道中等題,你先看。」
「好。」
「我負責後五道難題和壓軸。」
兩人點頭,各自開始讀題。
江辰沒急著看難題,而是先盯著陳小胖的屏幕。
三道基礎題,對他來說簡單得跟1+1=2似的,但他沒打算自己做。
這次比賽,他的目標不是拿第一,而是讓唐若曦和陳小胖在實戰中提升。
所以前七道題,他決定讓兩人動手,他只負責在旁邊修正、優化、教學。
說白了,就是現場手把手教。
陳小胖盯著第一道題,看了三分鐘,眼睛亮了。
「臥槽,這道題我會!貪心算法!排序一下,然後貪心取最優解!」
他擼起袖子,開始在鍵盤上敲。
「等等。」江辰叫住他。
陳小胖手一頓:「咋了?」
「你先說思路。」
「思路就是……把數組排序,然後從大到小取,直到滿足條件。」
「時間複雜度多少?」
「O(n log n)。」
「空間複雜度呢?」
「O(1)。」
「行,寫吧。」
陳小胖開始寫代碼。
五分鐘後,第一版寫完。
「江神,你看行不?」
江辰掃了一眼屏幕,三秒後開口:「第三行,變量名拼錯了。」
陳小胖低頭一看,臉一紅:「臥槽,index寫成indxe了。」
改過來。
「第七行,邊界條件錯了,應該是i < n,不是i <= n。」
「第九行,返回值類型錯了,題目要求返回long long,你返回int。」
陳小胖一個一個改,額頭開始冒汗。
「第十五行,這裡可以用三目運算符簡化,不用寫四行if-else。」
「第二十行,這個循環可以合併,減少一次遍歷。」
陳小胖越改越心虛,感覺自己寫的代碼千瘡百孔。
改了三十分鐘,用時40分鐘,終於提交。
屏幕上彈出綠色的Accept。
「過了!過了!」
陳小胖激動得差點從椅子上蹦起來。
「淡定。」江辰說。
「我淡定不了!這是我第一次在正式比賽里過題!」
「那也得淡定,後面還有十二道呢。」
「對對對,繼續繼續!」
……
另一邊。
林浩然那邊,A題提交時間:十五分鐘。
他看了一眼排行榜,大唐隊還沒動靜,嘴角微微揚起。
「果然,大一新生基礎不牢,A題就卡了這麼久。」
隊友點頭:「正常,他們能做完就不錯了,別指望拿高分。」
趙克林那邊也注意到了。
「大唐隊A題用時四十分鐘?校內賽的時候他們A題才三十秒啊。」
隊友分析:「可能是換策略了,讓那個胖子練手。」
「練手?這可是網絡預選賽,拿練手當藉口?」
趙克林搖搖頭,沒再想,繼續做題。
第二道基礎題,排序相關的。
陳小胖看了一眼:「這個我會!冒泡排序!」
江辰搖頭:「冒泡排序O(n²),數據量10⁵,會超時。」
「那用什麼?」
「快速排序,或者直接用STL的sort。」
「STL是啥?」
「標準模板庫,C++自帶的。」
「……我沒學過。」
「那我教你。」
又是一頓講。
從函數對象講到疊代器,從容器講到算法。
陳小胖聽得一愣一愣的,但居然聽懂了。
「臥槽,原來C++這麼強大?我以前怎麼不知道?」
「因為你沒學。」
「……也是。」
他敲代碼,提交。
Accept。
用時:四十八分鐘。
然後第三道基礎題,簡單的動態規劃,求斐波那契數列的第n項。
陳小胖寫了個遞歸版本。
江辰搖頭:「遞歸太慢,用疊代。」
他直接寫了個循環版本,O(n)時間複雜度,O(1)空間複雜度。
提交,Accept。
這次快了,只耗時32分鐘。
三道基礎題,終於全部搞定,但累計耗時兩小時。
陳小胖看了眼時間:「臥槽,兩個小時?」
「嗯,剛好兩小時。」江辰點頭。
「那咱們是不是太慢了?我看隔壁隊伍基礎題早在一小時內就做完了。」
「不急,穩一點好。」
陳小胖點點頭,雖然心裡有點慌,但江辰說不急,那就不急。
……
十月二十八號,周一。
早上八點半,燕北大學計算中心,二樓機房。
門口又貼了一張告示:【第41屆ACM國際大學生程序設計競賽網絡預選賽……比賽時間:9:00-14:00】
機房裡面已經坐了三支隊伍,九個人,整整齊齊。
這次不是校內選拔那種小場面,而是全國性的網絡預選賽。
來自全國各大高校的幾百支隊伍,同時在線上廝殺。
晉級名額只有六十個。
競爭激烈程度,比校內選拔高了不止一個檔次。
「代碼敲不隊」在最左邊,林浩然坐C位,雙手抱胸,表情嚴肅,眼神裡帶著一股「老子今天必須贏」的狠勁。
「BUG殺手隊」在中間,趙克林推了推眼鏡,面前擺著三瓶紅牛,一副準備拼命的架勢。
「大唐隊」在最右邊,江辰靠在椅背上,閉著眼睛,跟睡著了似的。
唐若曦坐在他旁邊,正翻著筆記本,複習前幾天講過的知識點。
陳小胖坐在另一邊,面前擺著一袋薯片、一包辣條、一瓶可樂,跟來野餐似的。
林浩然回頭看了一眼,嘴角抽了抽。
又是這個配置。
他想起上次校內選拔賽被支配的恐懼……兩小時,十三題,滿分。
全程江辰一個人秀,另外兩個一個當輔助一個當吉祥物。
「這次不一樣。」
林浩然小聲對隊友說,「網絡預選賽是全國性的,題目難度比校內賽高一個檔次。他們大一新生,基礎再紮實,也扛不住這種強度。」
隊友點頭:「對,而且這次有五小時,拼的是耐力。江辰再強,一個人也撐不了全場。」
「咱們只要穩住,肯定能贏。」
兩人對視一眼,信心滿滿。
趙克林那邊也在分析。
「大唐隊上次贏,是因為題目偏基礎。這次網絡賽,難題占比更高,他們大一新生沒經驗,肯定卡殼。」
他擰開一瓶紅牛,灌了一口:「咱們的機會來了。」
九點整。
大屏幕上,題目跳了出來。
共十三道題,五個小時。
其中基礎題三道,中等題四道,難題五道,壓軸題一道。
跟上次校內選拔賽的題型分布差不多,但難度明顯高了一個檔次。
尤其是最後那道壓軸題,題目描述就占了半屏,光看懂題干就得花不少時間。
陳小胖湊過來看了一眼,臉都白了:「臥槽,這題目也太多了吧?光讀題就得半小時!」
江辰沒理他,直接分配任務。
「小胖,前三道基礎題,你先看。」
「行!」
「若曦,中間四道中等題,你先看。」
「好。」
「我負責後五道難題和壓軸。」
兩人點頭,各自開始讀題。
江辰沒急著看難題,而是先盯著陳小胖的屏幕。
三道基礎題,對他來說簡單得跟1+1=2似的,但他沒打算自己做。
這次比賽,他的目標不是拿第一,而是讓唐若曦和陳小胖在實戰中提升。
所以前七道題,他決定讓兩人動手,他只負責在旁邊修正、優化、教學。
說白了,就是現場手把手教。
陳小胖盯著第一道題,看了三分鐘,眼睛亮了。
「臥槽,這道題我會!貪心算法!排序一下,然後貪心取最優解!」
他擼起袖子,開始在鍵盤上敲。
「等等。」江辰叫住他。
陳小胖手一頓:「咋了?」
「你先說思路。」
「思路就是……把數組排序,然後從大到小取,直到滿足條件。」
「時間複雜度多少?」
「O(n log n)。」
「空間複雜度呢?」
「O(1)。」
「行,寫吧。」
陳小胖開始寫代碼。
五分鐘後,第一版寫完。
「江神,你看行不?」
江辰掃了一眼屏幕,三秒後開口:「第三行,變量名拼錯了。」
陳小胖低頭一看,臉一紅:「臥槽,index寫成indxe了。」
改過來。
「第七行,邊界條件錯了,應該是i < n,不是i <= n。」
「第九行,返回值類型錯了,題目要求返回long long,你返回int。」
陳小胖一個一個改,額頭開始冒汗。
「第十五行,這裡可以用三目運算符簡化,不用寫四行if-else。」
「第二十行,這個循環可以合併,減少一次遍歷。」
陳小胖越改越心虛,感覺自己寫的代碼千瘡百孔。
改了三十分鐘,用時40分鐘,終於提交。
屏幕上彈出綠色的Accept。
「過了!過了!」
陳小胖激動得差點從椅子上蹦起來。
「淡定。」江辰說。
「我淡定不了!這是我第一次在正式比賽里過題!」
「那也得淡定,後面還有十二道呢。」
「對對對,繼續繼續!」
……
另一邊。
林浩然那邊,A題提交時間:十五分鐘。
他看了一眼排行榜,大唐隊還沒動靜,嘴角微微揚起。
「果然,大一新生基礎不牢,A題就卡了這麼久。」
隊友點頭:「正常,他們能做完就不錯了,別指望拿高分。」
趙克林那邊也注意到了。
「大唐隊A題用時四十分鐘?校內賽的時候他們A題才三十秒啊。」
隊友分析:「可能是換策略了,讓那個胖子練手。」
「練手?這可是網絡預選賽,拿練手當藉口?」
趙克林搖搖頭,沒再想,繼續做題。
第二道基礎題,排序相關的。
陳小胖看了一眼:「這個我會!冒泡排序!」
江辰搖頭:「冒泡排序O(n²),數據量10⁵,會超時。」
「那用什麼?」
「快速排序,或者直接用STL的sort。」
「STL是啥?」
「標準模板庫,C++自帶的。」
「……我沒學過。」
「那我教你。」
又是一頓講。
從函數對象講到疊代器,從容器講到算法。
陳小胖聽得一愣一愣的,但居然聽懂了。
「臥槽,原來C++這麼強大?我以前怎麼不知道?」
「因為你沒學。」
「……也是。」
他敲代碼,提交。
Accept。
用時:四十八分鐘。
然後第三道基礎題,簡單的動態規劃,求斐波那契數列的第n項。
陳小胖寫了個遞歸版本。
江辰搖頭:「遞歸太慢,用疊代。」
他直接寫了個循環版本,O(n)時間複雜度,O(1)空間複雜度。
提交,Accept。
這次快了,只耗時32分鐘。
三道基礎題,終於全部搞定,但累計耗時兩小時。
陳小胖看了眼時間:「臥槽,兩個小時?」
「嗯,剛好兩小時。」江辰點頭。
「那咱們是不是太慢了?我看隔壁隊伍基礎題早在一小時內就做完了。」
「不急,穩一點好。」
陳小胖點點頭,雖然心裡有點慌,但江辰說不急,那就不急。
……