他的兩位隊友一個一貫沉穩沒有情緒起伏,一個向來對此類小小成績不屑一顧,都沒有回他,只是迅速在看下一題。
這一題是有關動態規劃和數論的,要求在模1e9+7下,計算從(0,0)走到(n,m)且不經過k個禁區的路徑數。
「這個題型我之前做過!容斥原理問題!」徐永豪低呼。
饒科也點頭回應,「嗯!」手上動作不停,但是用歷史代碼中的組合數預計算模板來嘗試後,看著屏幕上的現出的結果變化,他又忽地一頓。
徐永豪也注意到了,「靠,n,m上限從1e5升到2e5了!」
遲歸微微眯起眼睛,飛快給出方案,「用分塊階乘預處理!能壓內存。」
望著內存從800MB順利降到了200MB,三人再度不約而同地舒了一口氣,饒科便就要抬手提交,遲歸的目光掃描式向下檢查,飛快攔住了他,「等等!符號處理上漏掉了(-1)^i項——」
眼見饒科似乎沒有立刻反應過來,他立刻奪過鍵盤滑鼠,選定某個位置,一雙手在鍵盤上飛舞著插入了一行代碼,再點提交。
幸好,出現的還是「AC」。
徐永豪的胳膊肘小幅度撞了下他,「牛!」
他的餘光繼續瞄向遠處高懸的大屏,他們隊仍然和海大某支隊伍解題數相等,罰時也相等,實時排名並列第一。
下一道題是有關於n×m的網格迷宮的問題,其中某些格子會周期性發光,需要求出從起點到終點的最短路徑。
「分層BFS,把時間模k作為第三維度狀態——」
「好。」饒科飛快按照遲歸的提示設計狀態轉移方程,使用dp[x][y][t%k]記錄位置(x,y)在t時刻的累計發光格子數,而徐永豪則飛速進行編碼。
這次提交後,屏幕閃現出的是鮮紅的「WA」,一下個個不自覺渾身激靈。
三個人頓時忙作一團,開始復盤問題。
「靠!這個拐角處的格子第3秒應該變暗可通行,但我們的狀態標記沒清除!」
「訪問狀態要改。」
「每個格子都需要加周期性狀態刷新。」
一番修正後,三個人的腦袋距離屏幕則更近了,盯著提交後,終於出現了讓人安心的綠色
「AC」。
大屏幕實時排名上,他們的名次下落一位,已不再和海大隊伍並列第一,落後到了並列第二。
饒科迅速調出代碼歷史確認,「最後AC時間我們比他們晚1分鐘,按ICPC規則我們實際排名第二,但DOMJudge實時顯示還沒細分。」
「只要我們在最後的L題上超過他們的罰時——」
那他們就能重回第一!
「最後一題了!!」
越緊張越焦慮時,徐永豪已經克制不住開始念經複述題干,「……存在n個節點,節點間通過m條單向隧道連接……求在總時間最短前提下,獲得的最大能量總和……」
饒科手動捂住他的嘴,提高聲音喊道,「別念了!」
遲歸的手飛速在紙上勾畫網絡拓撲圖,同時發出指令。
「隧道的周期性開啟……需要將時間維度離散為模數狀態,饒科,你立刻開始計算所有航道周期的最大公約數,我們需要分層圖的時間切片基準!」
「學長,你調出之前的動態優先級隊列模板,準備適配!」
「我靠……最後一小時。」
徐永豪的目光不由自主掃到了大屏幕的倒計時,胸口火熱,從開場以來他們隊伍就穩穩排在前三小幅浮動本已讓他的興奮麻木,可現在心跳重新萬分澎湃——要知道上次參賽的時候他們隊可是倒數十幾分鐘才終於摸到了壓軸題的邊啊!
只不過很快他又重新提心弔膽開始緊張。
ICPC比賽的最後一小時,實時排名會凍結,但比賽規則本來就是提交一次錯誤答案即WA(wronganswer)的話就會增加相應罰時,能看到實時排名和罰時變化的話,還算是能對對手WA與AC(accepted)的次數有把握,但當這些數據都只留到比賽結束再公開的時候,就成了純粹的心理博弈了。
畢竟,題如果真的不會做的話,拿再多次WA也不影響最終得分,但是不相上下的兩支隊伍,即使都拿到AC,WA次數最少,即罰時最少的那隊才是第一。
遲歸雷厲風行地指向徐永豪,「……如果t=2mod5,那實際航行時間應該是ceil(6/2)=3,你是不是沒判斷邊界閉合區間?」
徐永豪哀嚎修改,「靠我以為包含端點……」
遲歸迅速摁住他準備修改代碼的手,「先別改!饒科你立刻推導所有節點的區間類型,是左閉右開還是雙閉!」
「……再調出測試點9的隱藏日誌,看具體卡在哪個節點。」
一番兵荒馬亂之後,徐永豪敲下最後一行補丁代碼。
倒計時無聲地在視野角落不停數秒。
他們三個下意識地互相對視一眼。
「提交吧?」
「等等萬一這發WA怎麼辦?」