去年全國賽燒雞後已經過了一年了,總算又到了這個時候。去年我賽前賽中都超級緊張的,不過可能是因為已經比過比全國賽還恐怖的比賽 (?),所以這次不怎麼緊張。
不知道為什麼這次全國賽是星期五和星期六,所以星期五可以不用去學校 (X),今年晚上住在台大尊賢館,住超好但台北人不能住 QQ,不過晚上可以吃那裡的晚餐,吃得超飽,然後跑去別人的房間裡玩遊戲,那間房間裡大概擠了 20 多個人吧 XD。
題目
前情提要:我在測機的時候發現一秒大約可以跑
pA 礦砂採集
100/100
有
種礦物,第 種有 公斤,每一公斤的價值是 元,還有一個可以放 公斤的東西的背包,每一種礦都可以取任意重量,求放進背包裡的東西價值最大可以是多少。
題敘故意寫得很像多重背包,我就在想這也太難了吧,第一題就是多重背包,而且
仔細看了一下發現只是分數背包而已,Greedy 就會過了。
pB 村莊與小徑
100/100
給一張邊有權重(可能負)的 DAG,求節點 1 到每個點的最短路徑和。
看完題目想說可以用 Dijkstra 或拓樸排序,然後覺得拓樸比較好寫所以就用拓樸了,後來才想起來有負邊不能用 Dijksta。
pC 樣本解析
100/100
給一些只含有小寫英文字母的集合
和 ,求
- 有多少個
滿足 。 - 有多少個
滿足 。 - 有多少個
滿足 。 - 有多少個
滿足 和 部分相交。 - 有多少種將
分成 和 的方式,滿足 兩兩不部分相交。 保證
互不部分相交且互不相等,且 至少與一個 部分相交,且不與任何一個 相等。
前面四個都是簡單的實作,看到
找到隨便一個和
pD 水果包裝
100/100
有
個水果,第 個的重量是 ,然後機器會按照 的順序將水果裝袋。有 個袋子,機器在裝某個水果時,會把它放到總重最小的那個袋子裡,如果有等重的會放到編號最小的那個裡面。
已知全部裝完後,第個袋子裡的水果有哪些,求 ,或者說無解。
可以模擬一次過程,先找現在哪個袋子重量最小,然後就會知道要拿那個袋子裡的其中一個水果放進去,不過放進袋子裡的順序是隨意的,所以要找哪個水果要先放進去。因為要避免無解,就是要避免有袋子在裝完之前,就有出現其他已經裝完的袋子總重更小,所以把重量小的水果先放進去總是好的。
pE 共同朋友
100/100
給一張
個點的圖,求有多少對點有共鄰點。 ,圖可以是完全圖。
本來想說應該是把度數
後來想說一秒可以跑
pF 歡樂外送點
100/100
平面上所有格子點都是一個城市,然後有
個城市是外送點,第 個外送點會提供 的繁榮度,所有跟他曼哈頓距離 的點的繁榮度都會增加 ,求最繁榮的城市繁榮度是多少。
曼哈頓距離
然後有一個特殊 case 是因為轉完座標之後,會有本來不是格子點的點變成格子點,這樣就會誤判,不過測資裡沒有這狀況也沒人(吧)在賽中想到 (?)。其實只要多開一棵線段樹,奇偶數分開處理就好了。
pG 矩陣相乘
0/100
給兩個
矩陣 、 ,已知 是一個最多只有 個非零元素的矩陣,求所有非零元素的位置和值。 ,時限 6.5 秒。
完全不會做 QQ。
pH 跑跑遊戲場
38/100
給一個數字
,還有一隻只能往右和往下走的老鼠,構造一個迷宮,可以在格子與格子之間放障礙物,使得老鼠從左上角走到右下角的方法數恰為 。 ,如果迷宮大小是 ,會得到 分。
我的構造方法長這樣:
這樣就可以弄出走到那裡的方法數是 1、2、4、8、16、……的格子,然後把
pI 黑白機
9/100
有兩台機器:黑機和白機,還有
件事,第 件事在白機上做要花 秒、黑機做要花 秒,在一台機器上做完一件事後,那台機器上會有那件事的資料,把第 件事的資料傳到另一台機器要 秒。
要做第件事,必須滿足那台機器上有第 到 件事的資料,且每件事都只能做一次,求最快什麼時候能做完所有事。
9 分是
過程
開場一樣先打完 .vimrc 後讀題目,讀到 pH 覺得題本怎麼還那麼厚,才發現這次有 9 題(以前都只有 8 題)。看完之後認為 pA~pE 是水題,pF 應該是某種資料結構,pG~pI 則是沒什麼想法。
一個多小時的時候寫完了前四題,然後覺得 pE 沒有我想得那麼簡單(其實有),所以先去寫 pF,本來我用動態開點線段樹,然後一直 RE/MLE(CMS 分不出來),多試幾次後決定離散化,然後就過了。做完後決定去亂做 pE,然後也過了,這個時候比賽已經開始了兩個小時多。
接下來就是交替想最後三題,然後想到 pH 的 38 分解,丟上去後過一陣子沒什麼突破性想法,就先去寫 pI 的暴力分,這個時候是 3 小時 13 分,也是我分數最後一次改變的時候 (?),在這之後我的想法就沒什麼進展了 QQ。
結語
總分 647/900,rank 4
比賽結束後被卡在場地裡不能去拿手機,所以大家都在到處問分數,除了前三名外問到的每個人都只比我低一點點,想說大概是 4~6 名左右吧,放人之後去拿手機看,居然是第 4 名,還滿開心的,從上次連三等獎都沒有到這次二等一,也算是雪恥成功 (?)。
比賽剛開始大概十分鐘的時候外面有人說我還在睡覺,其實我一直都是先把題目看完再開始寫,從我第一次打 OI 制比賽(去年北市賽)的時候就是這樣了,不過我這次才發現原來這樣做的人是少數,大部分人看到水題就開始寫了。我會這樣做是因為 OI 制通常不會照難度排序,而且 OI 制的時間壓力不像 ICPC 制那麼大,先好好把題目都讀完也能做得比較順。