出過的題

網路上很多出很多題的人都會開一個 blog 來記錄他們出過的所有題,所以想說我也來開一個。

最近會特別想要寫這樣的一篇 blog 除了是我出了越來越多題,可能稍微在出題這件事上有一點點經驗了。二來是因為 ojdl 目前是斷外網的狀況,所以想說讓我至少有一個地方紀錄我出過魔鏡這件事。如果你真的很想寫我出的魔鏡題,那 我覺得你怪怪的 可以來跟我要測資,雖然不保證測資很強就是了。

期望的形式是按照題目被用的比賽 (也就是其實跟出題順序不相同) 的時間序來排,如果這個比賽很有趣,或有一些不只是題目相關的軼事的話就會有一篇獨立的 blog,這邊就是一個題目所引跟整理出題相關的 blog 吧。

FAQ

我出過什麼比賽

* 是我有 coordinate 的

  • 建中資訊讀書會魔鏡 7 *

  • 2025 eJOI

  • 114 學年度建中校內賽 *

  • 114 學年度全國模擬賽

  • 2026 IOIC 的某些天

  • 2026 SEATST

  • 第二屆 城市賽 建國中學站

  • 2026 YTP

  • 2026 NTUCPCPC

我之後會出什麼比賽

  • 才不告訴你

我手上有幾題還沒有出現在比賽的

看這篇 blog 會被暴雷嗎

魔鏡

一個字,累了。

題目 : ojdl 不見了,沒救。

接資讀以後我總共 coordinate 了 7 場魔鏡,分別是暑假一場,兩學期三次段考各一場。大概一次魔鏡平均我會出四題,暑假那次我出了六題。

暑假魔鏡 (編號 -1) 的題目出了六題經典水題,唯一一題比較有趣的是這樣 :

,構造 個不相交的拋物線 ,滿足任兩個拋物線所有係數分別不相同 (也就是 ),且所有拋物線係數和對 取模相同。

個人覺得蠻好笑的,開場一分鐘就有人做出來了,留給讀者練習。

第 0 次魔鏡出的題目有我的有四題,也都蠻簡單的,比較少見的題目應該是判斷一張圖有沒有偶環,跟一題還算有趣的雙指針。

第 1 次魔鏡有我參一腳的有四題,比較有趣的應該是操作分塊卡空間題,跟一題持久化線段樹,我那個時候真會實作。
第 2 次魔鏡五題都有我,其中比較好笑的是我出了一個 heuristic 的 interactive,然後導致很多人把時間砸在上面撈微乎其微的分數,蠻好玩的。

第 3 次魔鏡六題有四題有我,因為是愚人節所以出了一個二分圖最大團,但有出空的圖的測資讓友人 WA 了很多次。因為不會最近點對被波路教了以後,覺得很好玩所以出了一題 scaling 計幾題,結果測資生太爛被 dreamoon 爆破,一直說要卡掉他但都太忙就懶得生rrr。

第 4 次魔鏡五題都有我,我出得很開心,因為第 3 次魔鏡到第 4 次魔鏡資讀只有上了我的四堂圖論,所以就變成圖論大混戰。有有趣的 Kirchoff 題,有趣的 cut basis 題,有趣的虛樹 + vertex cover 題,有趣的根本不是圖但用二分圖包裝嗆人題,有趣的 bipartite matching 題。出圖論題的好處就是很多東西可以出,壞處就是好像有點打擊信心。

第 5 次魔鏡六題有五題有我,裡面出了某種 output only (我覺得在 ojdl 上出類 output only 真的蠻好玩的),有搞人題 1,搞人題 2,還有不知道為什麼沒有人寫的簡單回滾莫隊。作為最後一次魔鏡,放些臭題應該是傳統,所以我放了一題官解超長的板子題。

稍微統整一下以後發現,其實我魔鏡雖然看起來出了很多題,其中也很多我覺得作為練習題很不錯的題目,但其實都沒有特別好玩。這大概就是要出基礎技巧練習題跟要出有趣的題目的難度差吧。但不得不說出這些題目真的幫我把我的技巧跟實作鞏固得不錯,畢竟出題你寫官解的時候沒有 judge 給你驗,所以你會需要自己寫對拍,自己稍微比較小心一些。而且就像蔡孟宗說的一樣,檢查一個東西自己有沒有懂最簡單的方法就是出一題,我這些魔鏡總共出了 30 幾題,的確是幫我檢查了很多我不熟的地方。

出魔鏡比較痛苦的是要密集頻繁的生題,所以品質很難把關,平均起來等於我大概一個禮拜就要生出一題。聽起來可能不多,但考慮進去平常剩下的空閒時間其實很少,又要維持這樣的頻率一整年真的很累。只能說,還好我退了。

2025 eJOI

OI 初體驗。

題目 : Day 2 pB - Reactions,可以去 eolymp 上面 upsolve

2025 IOI 台灣國手群一起出的,題目本人不是特別好玩 (雖然他有 800 個解我蠻開心的),但因為是第一次丟區域 OI 比賽,所以還是稍微講一下。

起因是因為我們在合歡山上面 vir EGOI,寫一些就突然想說還是我們來出題目給 EGOI,但一來是 call for tasks 已經結束了,二來是 EGOI 不收高中生的題,所以只好計畫作罷。就在這個時候,我們看到了 eJOI 的 call for tasks 的死線延期了,延到國培的最後一天。看了一下他們的考古題都出太難了,不適合國中生。因此我們想,如果可以出一個快樂簡單可愛小水題的話一定會上吧。我們後來用了七天的時間量產了三題,其中兩題最後被 shortlisted,其中一題被拿來用,就是這一題。

題目上了以後 eJOI 就邀請我們去保加利亞玩,但因為收到這個消息的時候我們剛被來回玻利維亞的飛機摧殘過,所以沒人想去。現在想想好像有點虧,因為 eJOI 看起來很好玩。

eJOI 也非常有情有義,不但跟我們說可以送我們紀念品,又給了我們證書讓我們拿去做學習歷程 (超級酷),要不是他們的考綱真的很難出題,我應該會多出一點題目給他們的。

一個奇聞軼事是我們的題目延伸出了有人想要指控別人作弊 (看 Codeforces 留言),我自己是覺得看起來不像,但蠻有趣的。

114 學年度建中校內賽

Coordinate 了三場,初賽、複賽、北市模擬賽。

題目 : 初賽, 複賽, 北市模擬賽

初賽跟複賽每一題都慘遭過我的毒手,模擬賽的話則是 A, D, E 是我的。

初賽一開始是想說要出簡單一點,跟一般電腦課比較會教的東西,因此優先考慮模擬、遞迴跟動態規劃。我覺得出例如線段樹這類的資料結構講白了也只有真的已經開始打競程,對競程有一定的熟悉程度的選手賽中才會寫,但這不是我想專注切出來的人。也是這個原因讓 pC 是直接拿最經典的 LCS 稍微改一點點而已,原本想說這樣應該夠簡單的。我們也有找其他選手來幫我們驗題跟測難度 (一些成功的、武陵的、中一中的朋友們跟一些建中的學長),測的結果也是 pC 夠簡單,因此想說不會有什麼太大的問題吧,結果最後出來看起來其實真的還是太難,我的問題。

初賽當天我其實有點 (可能不只有點) 崩潰,除了似乎難度不如我們預期以外,還有因為我要處理一些賽中的作弊事件又要切校隊線,導致我沒有時間吃飯然後血糖很低,那幾天又很忙沒什麼睡,導致後來聽到有人要跟我抱怨這場比賽怎樣都會直接被我罵。但反正順利完工,進入複賽。

複賽在我們比賽前一天在做最後確認的時候,TIOJ 的機器突然就燒壞了,我們全體陷入恐慌,後來只好讓複賽往後延一個禮拜,壓在北市賽報名的最後期限選完人。複賽的題目名稱會長這樣是餘切的提案,我覺得很好笑就決定採用。裡面大部分的題目都是我們一起討論出出來的,當初會想要出一題非典型也是因為全國賽前一年有出,IOI 2025 也有不少,想說應該要跟上時代的潮流。因為怕有人不會用非典型我們還特地在複賽前開了一堂校隊培訓教大家怎麼用,後來版也反映出大家是願意試非典的,也在某種意義下算是強迫大家好好學習非典吧。只不過後來全國賽跟北市賽都沒有非典,但這就是另外一回事了。

北市模擬賽的話比較有料的題都是別人出的。我出的三題中, 2-SAT 全家桶是因為餘切說很多人不會 2-SAT,要幫他們複習一下,剩下兩題是我隨手翻之前北市賽考古題出過什麼就隨便亂縫合一下,投入的 effort 大約等於 0,鼎大跟餘切出的另外三題比較好玩。為了模擬北市賽,我們做了一些很好笑的限制,也很極限的生出了題本,總之整個東西都是在很極限的狀況下做的,但我覺得跟北市賽其實蠻像的,有點好笑。

114 學年度全國模擬賽

出了兩題跟當了美編。

題目 : pC - Trees and Flowers, pI - Another Construction Problem

美編的部分因為沒人想當所以我只好接,文案花 30 分鐘亂寫的,頭貼畫一個小時亂畫的,喂喂的自畫像他自己畫的,總付出時間越兩小時。

題目的部分出了兩題,pI 預設是 easy,出來的版也很符合。pC 預設是 hard,也蠻符合的,全場只有 dreamoon 有做出來,也花了他大概一小時,算是很稱職的 hard 題吧。

稍微介紹一下出題的流程,pI 的題目是因為缺少 easy 的題目所以花了大約 10 分鐘用出的。應該看的出來題目不是很自然,但反正做為一個水題應該還可以就出了。題目是 owoovo 架的,感恩 owoovo 讚嘆 owoovo。

pC 的話則是我出廖衡幫忙 set,出題的時候其實想得很簡單,要出個 FPT 題目。眾所周知,最大團在 natural parameter 底下有 W[1] hardness,也就是說假設你只知道答案不超過 ,那麼最大團目前被相信是無法在 的時間內解決的。(實際上細節很多,但可以先這樣想。) 又眾所周知,最大團在最大 degree 不超過 的狀況下有 FPT 演算法 (也就是有 的演算法),而且應該不難想 (Baltic OI 出過) 。因此應該也不難想像對 degeneracy 有 FPT 演算法。題目的條件又是 arboricity ,這就代表 degeneracy 。原本一開始同時想要考最大團的折半枚舉,但後來想想有 Bron Kerbosch,因為複雜度差不多也沒有特別卡掉他。總而言之就是把一些簡單的 FPT 相關的東西拿來搞一搞就拿去出,沒有什麼太大的智慧,就是一個嵌合怪題。測資因為測題的 phoenix 擅長用剪枝打爆我們的測資,因此我跟廖衡改了很多輪,很感謝他讓我們的測資最後變得夠強,也擋了 dreamoon 蠻多次假解的。

2026 IOIC

IOIC!!!

題目 : Day 1 pD - 有趣的函數, Day 4 pC - 消失的餅乾, Day 4 pD - 烽火台問題, Day 6 pJ - 截然不同

2026 IOIC 我出了三題隨機跟一題趣味賽,出這麼多隨機是因為我是隨機講師。

有趣的函數是一個不有趣的函數,某天在網路論壇上面看到有人在講那一類的函數,就上 OEIS 研究了一下。後來趣味賽一度以為缺題的時候我就丟了,但後來不缺題www。趣味賽比較值得一提的是 bwoah 出的烏茲別克大冒險,我原本只是嘴砲一下,但 bwoah 把他出的很好,bwoah 是 goat。

消失的餅乾是所有隨機題裡面我覺得最有趣的,出題的背景是我在備課的某天在洗澡的時候突然發現這個東西的不對稱性很大,所以隨機可以偷一個很好的常數就出了。選 的原因是因為這樣常數很接近 ,我覺得很好笑。後來芒果還一直想辦法說服我不能這樣出,但最後我還是成功的讓他接受我選 ,後來覺得我應該要出 的,更好笑。

烽火台問題就是一個標準的上課習題,講義裡有幾乎一模一樣的題,上課也有稍微提示會出這題。習題會變這題是波路的點子,原本習題是截然不同,我覺得換成這個有比較好,至少有一個人做出來。

截然不同則是看 Karp 的論文學到的題目,我原本想說我從來沒有看過這樣的題目,應該很酷,結果後來 bwoah 跟我說這個 trick 已經被出過了,我很傷心。但反正不失為一個好的練習題,所以他還是在這裡。我跟廖衡花了一些時間確定整體二分搜的解不會過 (因為我不想強制在線),然後就出了。以一個後見之明來看我或許應該要強制在線,這樣才不會有用 avx512 的解過,但我接受我笨了。

(更 : 看到 IOIC 的薪水單才想到 PreExam 最水題 也是我出的,水到完全沒印象。題是芒果架的,我只是花了大概一分鐘嘴砲出這題。)

2026 SEATST

蠻好笑的,應該會寫獨立的 blog。

獨立的 blog

題目 : Day 2 pA - Triple Circuit, Day 2 pB - Car Gathering

會知道這個比賽是因為某天在跟波路抱怨不能投 EGOI 的時候,他跟我講了這個比賽,跟 errorgorn 的 call for tasks。看到 call for tasks 以後第一個反應就是去看考古題難度,結果一打開來就看 IOI 2018 seats 的子題直接被拿來當一題,想說應該很好上。

投了三題,三題都被 shortlist,最後其中兩題被用。據說這場比賽會計入 7 個國家選 IOI 國手的權重,希望沒有人因為我的關係被逆掉。

因為會寫獨立的 blog,因此在這邊就不佔用太多篇幅,好奇到底有發生什麼酷事情的可以去看看。

第二屆 城市賽 建國中學站

首先要感謝 brinton 老大幫我們保留了這個文化遺產比賽,原本這場是第一屆就要辦的,但後來撞全國模就延到了 2026。

這場比賽我出了前四題,因為難度想要出簡單一點 (去年被很多人抱怨太難) 的問題,所以其實原本我出給這場的題目都被換掉了 (之後就會知道去哪了),但也沒差。稍微簡易題敘一下 (不知道我哪一年才會有空把題目搬上 TIOJ)。

pA: 有一個環狀的文字編輯器,要支援修改游標在的字元、左移游標、右移游標、刪除游標在的字元、詢問游標後 格 ( 不固定) 的字元是什麼。

一開始文字編輯器全空,操作數

pB: 有一張圖,一開始是一個有向的鍊 ,接著有 次操作,每次加入一條從 的有向邊 (保證 ),要求操作完要輸出有多少點對 滿足 可以到 也可以到

pC: 個字串的 LCS,字串長度總和不超過

pD: 有一個長度為 的環狀的整數陣列 (可以有正有負),定義他的 函數值是考慮所有將他切成三個連續區間 (可以有空的區間) 的方法,對於每個方法定 函數是三個區間中和最大的那一個的和減掉和最小的和,那這個陣列的 函數是所有 函數的最大值,現在要求支援 次單點修改操作,每次操做完都要算陣列的 函數。

可以看出來四題都是很標準的經典題。

pB 是最早出的,我在高一的時候就出好這一題了,這次拿來擋一下,拆掉圖論包裝後就是標準的區間資料結構題目。

pA 的想法則是最晚弄好的,因為原本出的水題感覺太梗,所以我只好生一個經典模擬題來擋。主要的教育意義的點在好像蠻多人不知道 deque 不能隨機存取,跟環狀旋轉其實就是字串切開與合併。

pC 的想法是跟 Grandtiger 在聊天的時候 (弄一個截然不同的東西) 出的,原本想要給 eJOI 但 eJOI 考綱不收 meet in the middle 的題目。個人感覺 pC 是教育意義最大的一題,主要是告訴大家 這種複雜度是可能會出現的,因此不要看到 就猜是 這一類的複雜度。

pD 則是我跟餘切受某題烏克蘭 OI 題啟發,做法跟題目都和原本的題目截然不同,但你看到那題就會知道我們是看過那題才想到的,這邊就不暴雷原題了。教育意義在於教大家經典的環狀帶修改最大區間和怎麼做,好像也蠻多人沒看過這個 trick 的。

最後做出來的人數也跟預期差不多,是真的有把題目難度成功降低,希望下一場繼續保持。

2026 YTP

第一次出 YTP,好開心。

題目 : 國中初賽 p5 排七, 高中複賽 p7 金庫密碼, 高中複賽 p10 五維西洋棋, 高中複賽 p16 拋物線

題目大部分的東西都是 Grandtiger 幫我架的 (除了題敘,題敘我寫得很好),謝謝大老虎。

排七是一個某天在洗澡想說要出個簡單的水題,原本是打算給 ntucpcpc,後來 ntucpcpc 我有別的搞人題所以就拿去 YTP 了。想法超級簡單,實作就…

反正總是比帥棋好。

比完以後芒果跟我說撞題了我才知道撞題了,看來是我用原題機的技術不夠好。

金庫密碼則是某天在亂想的時候出的,後來發現其實上個世紀中期有人研究過類似的問題,但我覺得我們的做法比較好。基本上有兩種做法,一個是直接 LCS 轉 LIS,可以壓 LIS 陣列長度上界來知道會過,另一個是直接開一個 的 DP 表格,把狀態換成答案長度來 DP,就一個簡單 DP 題,是我覺得我今年 YTP 出的最適合 YTP 的題目。

五維西洋棋跟下面 ntucpcpc 的某一題是雙胞胎,等下講。

拋物線的話就是一個很好的題目,我自己寫完拋物線以後覺得很好寫,大家應該都要寫。然後解不是李超,李超是假解。會出這題是因為我跟老虎想要賺錢,所以要出一個很難的題目,現在出完寫完以後我覺得這題很漂亮,大家都會喜歡。

總結來說,我 YTP 只有出一個正常的東西。但其實你仔細看,我只有要有教育意義的比賽才會出正常的東西,今年出正常東西的額度都在城市賽跟校內賽用完了,所以我對 YTP 出怪東西也是逼不得已的。

題外話是今年 YTP 參與到了一些好玩的事,跟一些不好玩的事,但蠻好玩的。

2026 NTUCPCPC

累死。

題目 : 初賽 pA - 考卷辨識, 初賽 pB - 團密度, 初賽 pH - 拓撲學, 複賽 pA - 裸題, 複賽 pE - 非洲大草原

出了五題,裸題是 owoovo 幫我架的,一題一題來講一下。

考卷辨識是 IOIC 的時候我跟小方塊在亂翻 204 的桌子,看到某一場 ICPC 有一題很抽的文字辨識,所以後來 ntucpcpc 零籌的時候我們就說要出一個這樣的題目。因為芒果說不能太難,所以被我 nerfed 到現在這樣,是一個可以親切的小水題,如果真的有人模擬了 subdivision 的反操作的話我很抱歉。題敘是大老虎的 idea。

團密度是我某天在洗澡的時候在思考,找到一個密度 (一般定義是邊數除以點數) 最高的子圖不是 NP hard 的其實聽起來有點反直覺 (乍聽之下會感覺 clique 可以 reduction 到他),那有沒有一種特別的密度定義是要找到最大的子圖是 NP hard 的呢?第一個嘗試就是團密度,然後就發現團密度真好笑,就拿來出了。原本計畫是要出沒有重邊,但真的太抽了所以沒有這樣出,還是讓他有一點點演算法的成分。

拓撲學是五維西洋棋的雙胞胎,故事是我某天早上搭車去台大的時候在思考,不管是官解 卡掉多一個 log,或強制線性,或 bitset 題,其實都是在卡一個 而已。那為什麼大家一般這麼排斥 bitset 題呢,大概是因為大部分的 bitset 題的考點都是純粹你要發現欸這個 bitset 做欸,不像其他你可能要真的有一些比較演算法類的觀察。因為我個人不是很喜歡 bitset 題,所以我當天下午就跟忘記是誰 (方塊嗎? 還是 abc) 說

最近很想出 bitset 題來報復社會

因為我絕對是不可能惡劣到把 bitset 出在 OI,也不會讓一場比賽出現兩題 bitset,因此出完以後就兩邊各分一題 bitset 了。出 bitset 題的結論就是編譯器優化跟剪枝好可怕,兩題都用盡全力也沒辦法卡完極致壓常,但反正賽中沒有就好。

裸題就是一題裸題,某天很無聊在思考如果 ban 掉 heap 的話我還會寫 dijkstra 或 prim 嗎,想一下就發現反正我有 BBST,不虧。順著這個思路想就開始思考有什麼題目是可以 ban 掉 heap 的,就出出了這題裸題。原本有考慮過有沒有一絲絲的機會有辦法把他出成 OI 題,後來跟波路討論了以後覺得沒救就在這邊把他當裸題丟了。

非洲大草原是我跟老虎一起出的,原本是某天我在思考有什麼區間 DP 題丟到樹上我們還會做,弄一弄就弄出一堆有的沒得東西,在這一堆裡面大老虎用他的火眼金睛看出了這題可以做,而且很好笑,他講完以後我也覺得這題很好笑,值得讓全世界都知道這題的美好。在我來看,非洲大草原就是我今年 ntucpcpc 丟的題目裡的定海神針,是一個極為精妙的題目,大家都喜歡,也都會推薦給親朋好友寫。回饋表單對這題的評價也是佳評如潮 (並沒有,大家好像不太喜歡,我很傷心),希望這題可以做為以後每個競賽程式選手都寫過的經典問題 (應該不會發生)。