2026 SEATST
基本上是一個我去製造混亂的故事。
稍微先大概做個背景整理。
什麼是 SEATST
Southeast Asia Team Selection Test (SEATST) 是一個一些東協國家 (雖然巴基斯坦應該不是東協成員?) 一起比的 OI 制比賽,今年參賽國有 : 印尼、馬來西亞、巴基斯坦、菲律賓、新加坡、泰國、越南 (按照字典序排序),據說目的是因為 APIO 品質不穩定所以決定多拿這個來當 (或取代) APIO 在選訓裡面算分的地位,不是只用這場比賽來算分,但有一定權重。官網上面有一張很好笑的 : 我想要 APIO 被採入 IOI 國手選拔 vs. 我想要 SEATST 被踩入 IOI 國手選拔的統計表。
放個官網。
如果想要 upsolve 或 virtual 可以來這裡 : TLX
看了這篇你就已經被暴雷兩題了,要逃跑現在逃。
故事線的時間
故事線開始是從 2025 10 月中波路跟我講 SEATST 開始,到 2026 五月底我收到了稿費結束。因為我有兩題被用 (暴雷),所以中間會把兩題出題的時間線插敘法講。
緣起
看的到這篇 blog 的應該都知道,我 2025 比完 IOI 以後就退役了。在 2025 eJOI 以後,我開始覺得投 OI 題蠻好玩的。所以我原本 IOI 比完以後第一優先是想要投 APIO 或 EGOI (比較符合第一次出高中生 OI 的程度,直衝 IOI 有點太難的感覺),但 EGOI 不給高中生投,APIO 又在台灣辦,我老早就收到我會因為 COI 導致不能投題的消息,所以我開始在 codeforces 上面整天狂掃有什麼新的 call for tasks 的 blog。
大概在這個時候,errorgorn 發了 SEATST 的 call for tasks,波路看我不能投 APIO 很可憐,所以就跟我講了這個比賽。當初會對 SEATST 心動的原因主要有 :
比賽國有很多很強的選手 (尤其是新加坡跟越南)
出題有 500 SGD
你幫忙架還可以多獲得 300 SGD
第一年的題目並不像 JOISC 或 IOI 這麼高攀不起,出不動的感覺
而且因為 IOI 的時候看過 errorgorn,他是個蠻親切的人的,所以想說就衝看看。在決定目標要投的時候我還沒有什麼好的 OI 題,但我想說順其自然大概就會生出來了吧。
Triple Circuit
首先第一個冒出頭的想法是 triple,這大約是 12 月的時候,我在準備 IOIC 的課程時。
會有這題的想法的故事也蠻有趣的,這其實是消失的餅乾的附屬品。先稍微提一下消失的餅乾的題目敘述 :
有一個隱藏,長度為
的 01 字串,裡面有恰好 個 1。每次可以選一個 subsequence,如果你選的 subsequence 裡面洽有 個 1 就成功了,否則就要衝心再選一個,直到成功為止。 請在期望
次猜答案內成功。 judge 是 non-adaptive。
這題並不是這篇文章關心的重點,所以先跳過他的解。
重點是我出完這題以後某天在洗澡,就在思考 :
如果給一個 01 字串,判斷裡面有
個 1 還是 個 1,會是一個有趣的問題嗎。
當下就想到,如果用電路構造來出這題或許會好玩,那要用什麼 gate 呢 ?
如果有 AND, OR, NOT 三種,那就可以蓋 XOR (隨然其實 far from optimal),感覺起來馬上就變不太好玩。
那等等,如果換成判斷裡面有
然後我就出去吹頭髮了,吹完以後 (大約花費 20 min 左右) 我就想到了一個 ~
這就是第一版的 triple circuit,出到這邊以後我就覺得可以先記下來了,因為
後來一月的時候,我拿這題的想法跟另一題 (今年的 backup task) 去參加了 IOIC 的出題派對,在出題派對的時候大家做這題的時間大約 10 分鐘到 1 小時不等 (基本上都是差最後一步),我覺得做為一個 OI 題其實不差,就大概再多一步就是一個很不錯的 OI 題。當下原本的想法是說不然改分
後來一月底,IOIC 前,因為去試教的時候跟 8e7 是同一天,在聽他的非典型課的時候我又想起了這個題目,因此決定再試著做做看突破,當時我邊洗澡一邊在想 :
兩個一組真的是 optimal 的嗎?
某種意義上也算是在不經意的情況下被我自己做
Car Gathering
gather 是大約 1 月初的時候的後,某天去剪頭髮 (我發現很多人都對我有不剪頭髮的誤會,我大約一個半月就會剪一次) 的時候,想起了一題我出在暑假資讀的題目 :
數線上有
台車,每台車的速度一開始都是 單位速度,你可以選擇某 台車將速度提升到 單位速度,你要在數線上找一個點讓集合到這個點最久的車需要花的時間最小。
我當時就在想 : 如果改成你可以把每台車 assign 一個速度,那我們還會做嗎?
原本這題的官解的對答案二分搜還是可以做,因此有一個
如果稍微小心一點就會發現,這題根本不能三分搜,而且我暑假魔鏡的時候甚至還有特別卡這個 (因為 virus 有提出這個假解)。但就這樣陰錯陽差底下,我有了一個出一個算單點值用 merge sort 可以比一般的 sort 省一個 log 的三分搜題的想法,後來再改成可以三分搜的函數,成為了 gather 現在的雛形。
後來等到 2 月開始認真要生 call for tasks 要交的資料時,我仔細思考變發現這個題目其實有一些問題 :
算單點答案利用 radix sort 可以毫無壓力的直接過。
因為不能爆 long long,汽油消耗量勢必不能超過
。
這兩個限制都會造成一些複雜度不佳的演算法或是一些假解通過這題,但也是因為這樣,我突然有一個很有趣的想法 :
在輸入排序過後,整個問題可以在
的時間內被解決
因為之前在 IOI 看過 但我想說這是 SEATST 不是 IOI,應該沒差。因此,現在版本的 gather 就誕生了。
準備文件
投 OI 題其實需要準備的文件蠻多的,我現在的模板大概長這樣 :
自我介紹
題目敘述 (我現在的模板是函式互動 version,格式抄 IOI 的)
官解跟幾個大 subtask 的實作
Editorial
public folder
一份附加資料,裡面包含 :
一些另解跟可能的假解的敘述
可以多加或刪掉的 subtasks
一些可以拿來卡假解的測資
出題動機
原本因為 SEATST 的 deadline 緊黏在 ICALP 跟 IOIC 後,預計三題裡面可能投一題或兩題。但因為我 IOIC 得了諾羅又感冒,導致 SOCG 的 feedback 我來不及修 miss 了 ICALP deadline,突然時間就變多,所以因禍得福的順利將三題都在 2/13,也就是 deadline 前一點點壓線投出去。
接著我就快樂去過年了。
神秘的好友邀請
SEATST SC 在 call for tasks 上面有提到,如果有用 discord 的話可以給他們,他們會透過 discord 來跟你聯絡。因此在除夕前一天的時候,我就收到了來自 errorgorn 的 discord 神秘好友邀請。接受以後,我接著收到了一個 server 的連結,進去以後我可以看到的只有 landing 跟一個叫做 tzuchiaoyen 的文字頻道。我當下意識到的第一件事情是 :
我可以透過 server 有幾個沒有身分組的人來知道大概有幾個人投題欸
稍微目測了一下大概有 14 個看起來可能是有投題的人,感覺不會到太競爭。
然後我就被 errorgorn tag 了。
我先排了我估計的三題的難度,然後他們就開始試著做,errorgorn 花大概三秒鐘就做好 gather 的
I forgot that Ci <= 100
我應該要從這一刻開始就知道這題有點怪。但我們那個時候想說只要把
I thought that 10^2 should be very intuitive because then the fuel cost will not be greater than 64 bit signed integer.
Famous last words.
後來他們開始做 triple,但不知道為什麼訊息傳一傳突然就斷更。最後一則訊息就卡在 10-chan 說他 triple 一看就會
開獎 & 架題
大概在 3 月初的時候,我因為好奇心忍不住偷偷問了 errorgorn 大概什麼時候會知道結果,他說他們努力在 APIO call for tasks deadline 之前告訴我,因為他們覺得我的題目比較難的可以試試看投 APIO,讓我也感受到 SEATST 的 SC 們真的人很好。但很遺憾地因為我也投不了 APIO,所以也沒用到他們的好心。不過在 3/14 APIO call for tasks deadline 的時候我也真的收到結果了,上了兩題一題 backup (大概就是進 shortlist 的概念),所以就算我可以投 APIO 也沒有題可以拿去投。Backup 的題目現在被我藏起來了,哪天有用到再說。
據說他們有考慮過三題都用,然後某一天就三題都是我的題,但後來想想太抽了所以不行。
因為受到了 600 SGD 的誘惑,我同時也決定我要負責架題。SC 把 triple 改成 output only 的形式也幫我減少了很多工作量。所以真正有在工作的大約是四天,然後這四天有三天都是在理解要怎麼用 TLX,因為 TLX 沒有 docs 可以讀…。
在暴搜所有可能的回傳方式的時候 (cerr / cout, 要輸出 accepted 還是 AC 還是 correct,大小寫這一類的),我才意識到我其實可以跟他們藉個範例來看看,prabowo 跟 joel 也就光速的幫我找到了我要的例子,早知道就一開始就問的。總之,我現在應該是變成台灣第二會用 TLX 的人 (我信 10-chan 比我會用),明年再戰 SEATST 應該會變方便。
我在四月底的時候 (他們給的死線前一周) 就順利將兩題都架好了,然後我就想說 :
應該沒有我的事了吧。
我錯的離譜。
SEATST 正賽
在四月底到開始比賽前,我都沒有聽到有什麼需要修改的消息。因此我想說我應該超級穩,根本沒有我的事,Day 1 開比的時候我還很厚臉皮的去問他們有沒有計分板可以讓我看 (雖然 day 1 根本沒有我的題)。因為 TLX 不像 CMS 一樣有一個記分板系統,因此 SC 還很好心的特別聯絡 TC 幫我搞了一個後臺權限看板,我也稍微的研究一下 day 1 的題目,其實蠻不錯的 (雖然有一題我覺得我可以用 Boruvka 亂砸過去),然後就看著兩個人早早破台,接著我就心滿意足地回去做我的事了。
Day 2 當天因為有壘球比賽,我早早就拋棄電腦前往台大。到了原本 day 2 預定的時間,卻發現進不去網頁後台,因此我就又很厚臉皮的問 SC 為什麼看不到。我收到了 :
hold on, we have emergency real quick.
當下第一反應是 :
是誰在搞
接著我就收到了下面這個消息 :
I think you sol has a little bug
原來是我在搞。
因為我沒帶電腦出門,因此我只好在德田跟 tiger 借電腦 debug。花了大概 20 分鐘後終於發現, gather 的 code 有一個 off by one,在輸入都是負數,只有一個 optimal solution
我很抱歉。
不過不知道為什麼,好像全部最緊張的是我,可能是因為至少原本生的測資都沒錯? 總之,還好全部的測資都有測試過,沒有任何測資是錯的,後來雖然遲到 30 分鐘但也有打到壘球,我的 2026 SEATST 之旅到這也算蠻順利的結束,沒意外的話這也會是今年最後一場有我的題的 OI 比賽了…。
力拼 2027 IOI, EGOI, APIO, SEATST 都有我的題
感覺會過勞。
蠻推薦明年有想投 OI 題,而且有自認有一定品質跟創意的題目 (不要投 AI slop 啦) 的人去投看看 SEATST 的 (eJOI 也很不錯,但考綱有點死有點難出),一來是薪水基本上是 open 的 call for tasks 最多的,二來是 SC 真的人很好,面對我這種搞不清楚狀況的也是興然接受,第三個原因是出結果的效率超級高,反觀讓我的題卡死的某 OI…。
賽後趣談 (?)
我們原本估計 gather 應該要是超級水題 (至少我跟 errorgorn 都覺得是 p1),結果最後記分板長的完全不是,然後因為
的限制還被一堆人嘴砲說是 troll problem QAQ。我覺得如果我們最後子題分配的跟原本設想一樣最後那個子題只給 10 分或 5 分就不會被嘴砲得這麼慘,但因為最後子題分數真的太大了,所以被討厭好像很正常, 我沒有控制子題分數的權限不要怪我。AI 真的很玄妙,5/29 的時候才聽到 literalchild 說 ChatGPT 5.5 Plus 做 triple 分別想到了分 bit 跟兩兩一組,但接著想 7 分鐘都想不出來要組在一起。隔天就聽到他說 ChatGPT 發明出一個超聰明的做法,比官解還好。我懷疑是題本裡的 215 個 gate 太笨了誤導了 GPT。
詳細作法可以看他後來發的 blog : Congratulations ChatGPT 5.5 Plus for getting 602/600 in SEATST聽說有人 gather 被卡常,我原本去偷看他的 code 感覺真的是被我不小心卡到常,但後來越想越不對勁,不過我已經失去後台權限看不到他的 code 了,直接變羅生門。
有人的 blog 對 triple 的評價是 :
When I first saw this problem, I was relieved that we were not getting 6 batch. As it turns out that somehow, you can treat this more like a MO problem — optimize, then submit your construction.
我覺得他應該要慶幸更像 MO 的題目沒有被用
但他看起來蠻喜歡這題的 (嗎?),我很開心。同一篇 blog 提到了有人想要用 random 過 triple,但因為一秒可以測的測資太多被卡掉。事實上我寫的 checker 用 bitset 在 800 毫秒內測了所有合法輸入 (不然
早就選超級大了),所以不是因為過的機率很低,是根本沒機會過,我可能應該要在題本上明確地寫這個的。 有一個 tester 在 GF 上說他很討厭 triple,至今不知道為什麼,也沒有人去問他。我沒辦法在 GF 講話所以我也不知道QAQ。
我發誓以後不會再出
這種限制, 但強制線性可能還會出現。errorgorn 把薪水 wise 給我,但因為轉到我台灣帳戶的手續費好貴,所以現在錢卡在 wise 裡。
我期末考要讀不完了。