第一次參加這麼硬的競程營隊(2026 IONCamp 參加心得)

在總召 M_SQRT 的推(慫)薦(恿)下,我報名了這次的 2026 IONC(清大暑期程式競賽集訓營),這是我第一次參加競程的營隊,其實開始前我並不知道這個營隊有多硬,但經過了五天的集(折)訓(磨)後,我還是收穫了許多東西。

另外,因為我剛參加完 SITCON Camp 後,才回家休息了四天,就又來參加 IONC,時間實在是太接近了,不免會把兩個營隊拿來比較,因此如果你還沒看過 SITCON Camp 2026 參加心得的話,推薦先去看看再回來。

SITCON Camp 2026 參加心得

第一天

這次的營隊實在很考量資訊圈的作習,中午才是我們的報到時間,我自然就不需要早早出門了。學到了 SITCON Camp 的教訓的我,這次果斷選擇搭高鐵下去清大,參加本次的營隊,主辦單位也實在貼心,有按排工人在火車和高鐵站派人帶隊搭公車到清大,因此後面也不是我需要操心的部分了,就是公車有那麼一點久。

到了現場,我一眼就望到了前幾天才跟我一起參加 SITCON Camp 的 @PGpenguin72,便坐到了他的旁邊;還看到了熟悉的 @何煦人也,不過他是作為工人的角色來的。營隊從下午開始,一到了會場,我們每人就被發了一本厚厚的講義,之後才知道,這個講義全都是那些厲害的、沒在營隊中賺到任何錢的工人編寫而成的,讓我很是佩服他們的用心。經過了簡單開場後,就開始了第一堂課,這個營隊的制度很特別,他們會提前公布課綱,並分成比較簡單的班與困難的班,讓大家可以按需選擇自己適合的難度,並且也允許我們在課程進行到一半時自由換班。看了看課表,第一堂是基礎技巧 I 和 II,其實這兩個班的東西我都各有一部分會和不會,但看 @PGpenguin72 選擇了 II,我也就跟著去了。

基礎技巧 II 的課程教了 C++ 語法糖、快速冪、位元運算技巧、隨機化演算法,前面幾個我都還能跟上,但到了位元運算的後半部分與隨機化演算法時,就跟得蠻吃力的了,大概到了這個時候,我才意識到,這不是什麼快樂的體驗營,而是實打實想教你一堆技巧的 Hardcore 營隊。才上完了一堂課,我彷彿被抽乾了精力,好在今天就只有這堂課,之後就是晚餐和上機的時間了。

今天因為是第一天,主辦團隊辦的上機趣味競賽,雖然形式上還是像平常競程一樣,使用 OJ 來評測程式碼,不過題目就非常有創意了,例如有程式超長的除錯題、只能修改一個字元的除錯題、要打線上卡牌遊戲並取得一定分數才能 AC 的題,甚至最有趣的題目是「拯救 mococo」,它要我們真的走出教室,並玩一個解謎遊戲。這次競賽是團體賽,每隊則有三個人,不過並不能指定隊友,隊友是主辦單位分配的,並且都是和自己同小隊的。上機考開始前,我和隊友互相聊天認識了一下,但感覺他們似乎都比我強不少,所以好像後幾天就是躺分局啦

趣味賽開始後,我負責的題目就是剛才提到的「拯救 mococo」,才發現 @PGpenguin72 也出到教室來,於是我們就一起行動了。這個解謎的第一關,是要解開一個密碼鎖(三位數)鎖住的箱子,鎖旁還放著一張寫滿字的紙(下圖),字乍看之下沒有意義,但實際上,把文章裡的所有粗體數字都相加後,就是密碼了。@PGpenguin72 率先解開了這一關,我也猜到了是數字相加,但不知道是漏看了什麼,怎麼加都有問題,後來在相加到差不多數字後,我還是靠著半暴力試的方式,把密碼解開了,取得了第一張線索紙,同時也是第一子題。

第一張紙上寫著下一張文件和密碼盒的提示,紙上寫著的「chang,keh-jeng」還蠻明顯的,就在走廊的張克正教授辦公室布告欄,上面釘著提示紙,而密碼盒的位置,我和 @PGpenguin72 倒是找了蠻久的,提示是「欲窮千里目,退一步海闊天空」,我和 @PGpenguin72 一開始的想法其實都是找窗戶,但無論哪個窗戶,都沒有找到盒子,最後我們誤打誤撞,才在樓梯間的門上找到了盒子,原來它的意思是「更上一層樓」(樓梯間)的地方退一步(看到盒子)。

找到了盒子,還得從文件(下圖)中找到密碼,我們一開始的想法其實很單純,把兩個時鐘漏液的部分疊起來,結果在我們要去猜的時候,@PGpenguin72 發現密碼似乎已經被打開了,好像是上一位解開的人沒有關回去,於是我們就這樣找到了下一張提示紙,同時也是下一子題,不過後來出題者才解釋說,我們我思路是錯的,實際上只要看沒漏液的白色部分,就能看到「591 − 287」,找到密碼「304」。

最後的盒子就很難找了,提示紙分別提示文件是「la miao ya sao」以及盒子「[ArAr+He] - Al」。文件位置非常簡單,「la miao ya sao」=「拉描壓掃」,作為一個防災關觀滿點的良好公民,一看就知道它指的是滅火器,不過其實我們早在之前就已經不小心找到了文件(在滅火器盒上),因此這個是什麼也不重要;不過文件內容的密碼是什麼,以及它的位置,就很難猜了,提示紙上的盒子位置,一看就知道是在指化學元素,但代表的是什麼,我們想了半天也沒有想出來,直到後來,出題者直接和我們說了:「我決定直接和你們說,盒子在 326 教室,因為我一開始以為 326 教室不會有人用,所以把盒子放那裡,結果現在給工人當休息室。」總之,我們順利地找到了最後的盒子,我、@PGpenguin72@235 這三個進度一樣的人,一同到了 326 教室,並輕易地發現了盒子在某張椅子上,但我們發現,這個盒子是用鑰匙鎖,但看了半天,我們始終看不出來文件(下圖)在表達什麼。

@235 老哥發現了底下的亂碼是被一種叫作「Wingdings」的字體編的,從字型與英文字母對照表一個個翻譯出來,就翻成了以下的一段程式碼:

1
2
for(inti=0;;++i)cout<<arr[i][i*i%44];
for(inti=0;;++i)cout<<arr[i][(i+1)*(i+2)%44];

我們知道,謎題又解了一大步,但光憑底下的程式碼,根本無法找到我們要幹嘛,我們最大的問題是「arr 指的是什麼?」以及「index 的 %44 代表著什麼?」,結果沒想到 @PGpenguin72 突然𩆜機一動,數了數上面文章,一行的確就是 44 個字,原來上面的文章代表的就是 arr,而輸出的字,我們一個一個算後,得到了第一個迴圈是 ㅤ兇手如賴宇弘,當面對他說、第二個迴圈 「還我狗勾」,他會給你東西,雖然我們解讀不完全,但憑著前幾句話的破譯,我們成功在距離時間結束前,向賴宇弘(chrislaiisme,即出題者)說了「還我狗勾」,取得了最後一把鎖的鑰匙。開啟最後一個盒子,裡面躺著的便是 Mococo(似乎是 Hololive 的 VTuber)Q 版玩偶,以及裝滿了滿分解的紙條,我們拿著紙條,衝出教室,並回到了自己電腦前,在即將結束比賽的前一刻,把答案交了上去,隨著 OJ 系統顯示出了綠色的 Accepted,我的心跳才漸漸緩了下來,隨之而來的便是滿滿成就感與對出題者和 @PGpenguin72 的佩服。

比賽結束,我們隊的成績實在不算太好看,但趣味賽的題目真的很有趣,與隊友也初步認識了一下,整個趣味賽的體驗實在是非常良好,但這種千年難得一遇的創意題目,恐怕短時間內不會再有人能企及了。

賽後,我們拿上行李,便跟隨著房長的步伐,慢慢走回了自己的寢室。我們住的是清大相當古老的「禮齋」,因為老,整個房間實在不算太好,但與 SITCON Camp 住的交大八宿一對比,頓時感覺眼前環境也不差了(交大別告我,Please)。到了寢室,我們與室友相互打了招呼,才發現這間寢室也如我在 SITCON Camp 一樣,我是年齡最大的一位,但與 SITCON Camp 不同的是,這個營隊的難度可高多了,我還能成為營隊裡的老人,著實讓我感受到了滿滿的實力差距,台灣未來是可期了,但我也不得不承認我的平凡,雖然我很早以前就已經認清自己是個廢物就是了

第一個主動破冰的室友是 @Sworda,是一名高一升高一(因為休學)的競程電神,很難想像在他這個年紀就已經可以在如此 Hardcore 的營隊裡如魚得水了,但像這樣的人偏偏占滿了整個營隊。我們室友間很快就破冰了,@Sworda 聊起了他國中的八卦(有興趣者可自行問他),後來 @PGpenguin72

放完行李並簡單和室友認識後,我們隊輔問我們要不要去 7-11 買東西吃,我、@PGpenguin72@Sworda 一起行動,買了點泡麵、飲料和冰,買東西時,我們三人就相互熟了起來,一路回到寢室,於是 @PGpenguin72 就這樣串寢了,我們聊了各種話題,而他們兩個音遊佬彷彿找到了知音般,開始玩起了 Phigros,我這種菜雞是無法融入他們就是了。

我們一路聊到了很晚才睡,結果正當我要去睡覺時,竟然看到一隻大大的蟑螂出現在我的睡袋上面放頭的地方,一動不動,不知道是死是活,因為已經很晚了,我們寢室只有我和 @Sworda 醒著,但很顯然,我們兩個膽小鬼完全拿這隻小強沒輒,最後還是 @Sworda 去工人的寢室請到了總召,總召的操作比我們看到蟑螂還更令人震驚,只見他徒手抓起了蟑螂,並走到窗邊,直接將蟑螂扔了出去,並頭也不回的走出門外,回去自己的寢室,留下震驚不已的我們兩個在原地發愣。之後,我拿了些濕紙巾,把睡袋上殘留的蟑螂鬚清理乾淨,而這樁事件過後,我肯定是不敢再鑽入睡袋,於是我把枕頭墊在放頭的地方上面,身體則直接壓在睡袋上,拿外套當作棉被,以一種極其反人類的方式入睡了。

第二天

第二天一早,我們跟房長分享了這件事,他似乎已經見怪不怪了,跟我們說:「我們住的那間不是叫『禮齋』嗎?清大的學生都叫它『蟲災』。」這也怪不得我們當初去參加 HPC Winter Camp 時,清大學生會推薦我們自己住外面了。

今天的第一堂課是資料結構,一樣分成了基礎資結和進階資結,昨天被嚇得不輕的我和 @PGpenguin72,當然是跑去了基礎的班,但 @Sworda 作為第二次參加 IONC 的電神,便跑去聽了進階。基礎資結上了許多東西,包括 C++ 的 STL、DSU、Segment Tree、BIT,難度也漸漸從我能完美跟上,漸漸變成聽不聽已經沒有什麼太大的區別的狀態了。

午餐時間,勉強算是給自己補充了一點精力和腦子,而午餐過後,就到了下午的課程啦。下午的主題是動態規劃(DP),不過不知出於什麼樣的理由,下午並沒有分班,而是所有人聽同樣的 DP,好在這個講師還算厲害,從一種我以前從來沒有過的思考方式出發,算是讓我學 DP 學得最好的一次了,只是作為競程新手,甚至「母語」還是 Python,要直接學會見題就實作還是有些難度,因此我便處於了一種懂理論但無法實作出來的狀態,相較以往,這肯定算是進了一大步了。

晚上就到了我們的上機時間,不過不同於昨日,今天是個人賽,賽前,工人問了我們意願,並表示若不想上機,可以到另一間教室自己練題,不過我雖然已經能夠預想到上機的我是個什麼樣的場景,我依然選擇把握這個機會上機去了,而 @PGpenguin72@Sworda 則沒有參與。果然,一上機,可以說是心態涼了半截,題目整本看完,發現只有前幾題看得懂,還不見得能實作出來,好不容易把前兩題刻出來了,結果一提交,又吃了好幾個大大的 WA,解題能力已經差到作為工人的 @何煦人也 走過來,幫我 Debug,我們兩個問題找了半天都沒找出來,後來才發現是自己題目看錯,輸出錯了東西,勉強拿了幾個 AC,時間就差不多了,整個回房間的路上,我的心態基本上就是全程爆炸,直到能夠多和幾個認識的朋友(@PGpenguin72@Sworda)聊上天後,我的心情才好了些。

晚上的時光和昨天似乎沒有差太多,除了我們有題可以補,好幾個室友都在補題,而我則是翻出了上課的簡報,又把它看熟了些。剩下的時間,依然是吃零食、聊天、玩音遊,尤其是 @PGpenguin72@Sworda 這兩個人,如遇知音,一路玩音遊都玩入了迷,大概從這時候開始,我們三個人熟了起來,熟得都快焦了

第三天

今天上午的課程是圖論,一樣的分班,一樣的 @PGpenguin72 和我聽基礎、@Sworda 聽進階。基礎圖論教的東西不外乎就是從圖的概念、儲存方式、BFS、DFS、Dijkstra 一路講下去,不過因為其實 BFS、DFS 這些我都已經略微了解過了,前面的東西就聽得比較少了,不過後續課程仍讓我更加了解圖論和樹的概念,以及許多存圖方法,這裡狀態基本就和 DP 一樣了,屬於是理解原理但實做不出來了。

下午的課程是數學,我們一樣是選擇基礎數學,而 @Sworda 也跑過來和我們一起上了。這堂課大致講了一些 GCD、(擴展)歐幾里得演算法、模運算、線性同餘方程、中國剩餘定理、RSA 加解密、多項式乘法之類的東西,不過其實這部分與競程就有些沒那麼相關了,也因為覺得有點簡單,我們基本都沒在上這堂課。這堂課最香的部分,還是有下午茶點心可以吃吃喝喝,也是讓我們有時間可以離開教室走走的機會。

很快就到了晚餐時間,今天的晚餐時間倒是精彩了很多,雖然晚餐本來就會邊聊邉吃,但這次一起來聊天的人卻多了許多,有不少還是工人和講師,我們就這樣一群人拿著便當,站在走廊上,一邊聊天一邊進食,度過了最有意思的晚餐時光。作為 THJCC 總召的 @PGpenguin72,還夾帶私貨,偷偷向一堆人宣傳了 THJCC 以及今年的 CTF 比賽,只不過這裡是我的部落格,我可絕對不會幫他宣傳,我只知道 THJCC CTF 是一個獎金總額高達 7800 元、新手也可以來嘗試的 CTF,本次比賽採 Jeopardy 賽制,題目涵蓋 Web、Reverse、Crypto、Pwn、Misc 等類型,無論你是第一次接觸 CTF 的新手,還是已經參加過多場比賽的玩家,都能在這裡找到適合自己的挑戰,CTF 不只是比誰解得快、分數高,更是一個學習、交流與累積實戰經驗的舞台!

晚餐過後依舊是上機時間,而今天我們又是團戰的形式了,這也算是我們第一次打「正經題目」的比賽了,我也是見識到了隊友的實力,都是一群上課上進階班的大佬,而我這個只會刷水題的菜雞,只好先用 Python 做一做水題後,再去把一些有想法但不會實作的題交給隊友實作,大概這也會是最後一天的正式賽分工了吧。

上機時間結束後,依然是去 7-11 買一些零食回去寢室吃,之後回寢室也和前幾日一樣,複習簡報、音遊、屁話,還試著讓 AI 教我一些 DP 的概念,之後便睡了。

第四天

今天早上的課程叫作「其他解題技巧」,又是一個沒有分班的課,可想而知,我們三人肯定會坐在一起。這堂課在講一些用 Bitset、Hash 壓常等技巧,不過可能是連續幾天的睡眠不足,加上對 C++ 的不熟悉,我一不小心又小睡了一下,反而今天學到最多的是在下課時間,坐在我們後面的 @何煦人也 教了我前幾天教過的 Segment Tree,不過他的教法似乎更符合我,因此我很快就掌握了 Segment Tree 的核心思想,還拿到了他的競程模板,可以說是收穫滿滿、肥肥撤離

今天午餐不同於前幾天在教室吃,今天我們跑到了學校的餐廳,不過這麼做對我們而言並沒有任何好處,畢竟吃的還是他們統一訂購的便當,但座位可說是一位難求了,我們找了半天,才終於找到了兩個相臨座,和 @Sworda 一起開吃了。

下午的課程是賽局理論,而這些理論實際上我們早就學過了,因此我們並不是很認真上課,不過我還是學到了一個叫 Nim 賽局的技巧,算法也相當簡單,於是就這樣,這個技巧也成為了這幾天為數不多我能非常理解還實作得出來的理論了。

今天的晚餐也是營隊的最後一次晚餐,主辦單位為我們準備了許多披薩,我們一邊吃著披薩一邊閒聊,享受了營隊的最後一次晚餐。

晚餐後,到了晚上的上機,今天又回到了個人賽,不過這次不同於兩天前,我以不錯的速度就拿到了前兩題的 AC,並又拿了後面題目的一些子題分,如此順利的解題過程,可以說是讓我心情大好,雖然和那些電神相比,自己還是顯得黯然失色,但我自己知道,我已經進步很多了,也就夠了。

晚上的時光,前面都和前幾天一樣,泡麵、聊天、音遊、補題,但更晚些時候,我們一群十餘人,一起串寢去 412 寢聊天,這之中有幾個熟人(如 @Cheng0928@hung),也有幾個之前完全沒看過的,不過清一色都是電神,紛紛在說這幾天上機考 AC 了多少多少題,在他們眼中,我看不懂的那些題目,他們彷彿一眼就秒了,只能說,我大約現在才理解自己和競程二字差得多遠。不過這一晚給我的收穫可太多了,例如有人就分享了自己的刷題心態和方法等,我也加了許多人的好友,更是讓我重新思考了自己對競程的態度。深夜的到來,才迫使我們分開,洗澡的洗澡、睡覺的睡覺,但我、@PGpenguin72@Sworda 似乎還不想睡,一直在聊天,一路從寢室聊到走廊,怕太晚會吵到室友,而這種人又少又熟的情況,也讓我們難以停下聊天,於是一路聊到了四點多,才回去床上睡覺,實在是有些太晚了。

第五天

今天是這個營隊的最後一天,也是正式賽的日子,今天沒有課程,不過早上還有一個經驗分享的活動,就是由前幾天的數論講師主持,他分享了許多關於升學的看法,這些顯然對我來說並不重要,但聽著他說:「TOI 沒進過一階的話,清大應該很難特選上。」我才有些理解頂大特選的世界。經驗分享不算太短,倒是又給了我一些對於競程的想法,也在思索著大學後對於競程的態度應該如何。

很快,正式賽便開始了,正式賽是團體賽,並且隊友也和前幾天的團賽是一樣的,因此我們都已經蠻熟悉彼此了。正式賽上,我成功解出了幾題,也給隊友們提供了許多題目的想法,屬於是這幾天比賽裡,我們配合最好的一次了。主辦團隊也在我們比賽時,在教室外提供了點心,滿滿好幾大桌的點心和飲料,實在讓人垂涎三尺,但比賽還進行著呢,我們只好草草吃了幾個點心墊墊肚子,才回到教室裡繼續腦力激盪。

比賽進行得很順利,隊友們也實在很電,一下就把我們帶飛了,我們因此拿到了不錯的分數,只不過因為在比賽結束前半小時會封榜,我們並不知道結果如何,直到比賽結束的開榜環節,這是我第一次參與這種環節,沒想到,開榜和頒獎的過程還真是看得我心跳不由自主地加速,最後,我們成功拿下了第五名,以及隊友拿下的 pE(第 E 題)首殺。

頒完獎,活動也告一段落了,工人帶我們一群人去往公車站,我們乘著公車,轉往高鐵,最後回到了家,活動也畫上了句號。

結語

這次的活動實在是相當充實,但也是真的很累,光看文字,你或許看得出來主辦單位的用心安排,包含了第一天的趣味賽、每天的練習賽、最後一天的正式賽,都是經過了思考後的細心安排,但你大概很難從字裡行間體會到累和燒腦,工人們自己也說了:「這次的營隊,聽不懂很正常,這裡面的很多東西,都是大學花了一個學期才會學到的東西。」雖然不知道是不是為了安慰我這種聽了半天還聽不懂一點的人,但這也足夠說明了這個營隊不是來玩的,是貨真價實想教會你競程技巧的。

另外,當然還有一個收穫是每次活動都會提到的——社交。我來這個活動一樣也認識了很多電神,而這也是我為什麼這麼喜歡參加一堆活動的原因了,畢竟,人脈這種東西可是難求的。

總體而言,我非常推薦喜歡競程的人可以參加這個活動,它甚至可能比台大的競程營還簡單一些,不過這個活動絕對不是給只想要來交朋友和娛樂的人來,不然超長的上課時間,很可能讓你不到三天就想回家了。


第一次參加這麼硬的競程營隊(2026 IONCamp 參加心得)
https://chuen666666.com/第一次參加這麼硬的競程營隊(2026-IONCamp參加心得)/
作者
發布於
2026-07-18 14:08
更新於
2026-09-04 21:38
許可協議