JSOI 2018 Round 1 遊記

清明時節雨紛紛,路上行人慾斷魂。

一年一度的JSOI,已在不覺中來臨。

無論是LGM神犇,抑或只是初一蒟蒻,盡在這不大的賽場中相遇——他們無不在用一行行代碼,譜寫出自己被OI所充實的青春。

【以上:僞文少】


Day 0

陰雨綿綿的下午,步入南理工,JSOI賽場。

與各路神犇聊了會天,看他們在黑板上寫FizzyDavid AK JSOI。

試機,一切順利。


頗爲滑稽的是,AC自動機的模板,我今天才完整寫出——先前不過是口胡罷了。根本原因,竟是有小道消息稱今年JSOI考字符串。

不僅詫異於djq_cpp曾經的不思進取【霧】。

另外,dtx一上Linux,就找到了遊戲的入口。——大抵是AK後消磨時光吧?


Day 1

抵達賽區較早,閒來無事,欣賞了一會兒二月蘭——無數淡紫的花朵盛開在林間,還頗有些浪漫氣息呢。

突發奇想,出了一道毒瘤線性基模板題:定義一束二月蘭的美麗值爲其中每一枝的美麗度的異或,現在某神犇要摘一束美麗值>=K的二月蘭送給……

開場,看T1,跳T1。

看T2,第一反應:55分是CF原題?然而我不會。看T3。

以爲它可做,想了一會兒,卻只發現了O(n ^ 3)的做法。

突然意識到T1的數據範圍好小……奇怪……狀壓dp,維護臺階!

寫完,測樣例,沒拍,寫T2 T3去了。

T2稍後才發現是一棵樹——於是55分貪心變成送分了。然而剩餘的45分……還是不會。

二分 + 數據結構?

沒敢想下去。推T3。還剩~2h45min,時間多着呢。

然而沉思良久,仍只會O(n ^ 3)。

代碼大致如下:

namespace subtask_35p //O(n ^ 3) dp solution
{
	//... ...
}

namespace sol
{
	void solve()
	{
		printf("DP on trees? FFT? Centroid deposition? I think it's related to link - cut - trees, yet I cannot come up with a single idea QAQ");
	}
}

最後30min,想T3無果,放棄。玩畫圖 + 推數論,第一次在省選賽場上的考試竟這樣結束了。

賽後——

djq_cpp:“T2怎麼做啊……貪心,二分,然後?不會啊……”

某神犇:“T2線段樹維護一下就行了吧”

djq_cpp:”???!!!。。。"

其實有些後悔,將時間全花在T3上。不然興許T2就100分了呢。

終測成績,200(100 + 55 + 45)。不算超常發揮,卻也沒有崩盤。

T3三位神犇經鬆一鬆(卡常)後,O(n ^ 3)過了。

*FizzyDavid是九省一市唯一一名AK選手!Flag屹立不倒!

JS Rk 10。NFLS Rk 6。

突然想起自己是非正式選手。

於是打摜蛋,浪。

---------------------------------------------詭異的分割線----------------------------------------------------

賽後講題。

T3題解:

標算——LCT + 卷積 + 樹dp。

詭異做法——樹分治 + 卷積 + 樹dp。

卡常做法——鬆鬆鬆 + 樹dp。

djq_cpp:“?????!!!!!。。。。。"

然而依然沒有聽懂。

聽說明天考字符串?


Day 2

有了前兩天的經歷,去賽場的路便顯得平淡多了。

8:00,準時開場。

T1,剛看罷,只見題目描述極長——“省選顯然不會考顯然的模擬題,那麼,可以預見,這道題將會異常毒瘤”,我以爲。C = 1的50分貌似可做?又覺得不會這麼簡單,頓時起疑,於是先擱下。

T2,卻令人心生一種奧妙重重的感覺/*霧*/……

樹分治?FFT?等下,樹dp,35分,寫了。

時鐘,指向9 : 00。

T3 志糊竄(?)。期待已久的字符串,然而估計又是個毒瘤題。

不管了,SA + LCP無腦上!——咦?這題似乎可以推式子?——莫隊O(n sqrt(n) log(n))……

不覺間,9 : 45。新的可優化點遙遙無期——也不必再想了,就這樣寫吧。

10:30,SA & LCP完成。11:30,維護它們的數據結構完成,公式推完——還有三種分類討論,給人以一種“常數會炸”的感覺。

…………

眼看正午已至,值得放下調得正酣的T3,去寫T1的60分去。

//I soon give up
//I've come up with an O(n sqrt(n) log(n)) solution (with a relatively large constant)
//Yet my programming skill is too low to finish the code below
//Spending 3 hours, gaining 0 points
//...
//Hope in JSOI Round 2
//I' ll 'come back' next time! _0w0_

令人哭笑不得的是,將我這次JSOI收尾的,既不是一場逆襲,亦非平庸的發揮,而是以上一段有着”千言萬語,更於誰人說“的註釋。

策略崩。

賽後花絮:

未來女隊dxm: "T1是Dinic最大流麼?”

djq差點捶桌子。

csl神犇: "T3寫炸了“

djq: 您至少寫了T1正解啊……

要涼涼……


---------------------------------------------詭異的分割線----------------------------------------------------

寫作業,卻在寫完之前跑去打摜蛋了。//不知爲何,每次贏的時候都是1 4,只晉一級,慘慘

評講T2時,猛然發現T3其實可以構造一下笛卡爾樹 然後啓發式合併O(n log ^ 2(n))水過……近乎昏厥……

//代價是T2沒聽懂

T3正解O(n log n),強。

FizzyDavid 兩天標準分,強。

djq_cpp 95(60 + 35 + 0),暴力都沒打滿。

當天~rk 17。總排名掉了多少,未知。


壯志盡在南理工,策略失誤一場空。


總結:

總有人安慰我,”你才初一呢,考得不好也無妨,畢竟積累經驗。”然而有些事情,也該做了。

這次JSOI,自然收穫匪淺——一方面,有幸認識了來自JS的各路神犇,同時也見證了自己近兩年來水平的進步;另一方面,賽前的壓力,反倒促使我再過一遍似懂非懂的算法,竟首次真正完全理解了AC自動機、熟悉了FFT、平衡樹及後綴數組。

兩天總分295,總體還可以。然而Day 2的策略爆炸,仍是個不小的遺憾。

常言比賽最忌在一棵樹上吊死——然而,我總禁不住在發掘一道題“疑似可做”時,便鑽進去,沉迷其中,無法自拔了。

下次定要注意。

至於什麼算法上的疏漏——除卻網絡流仍需加強練習、以防誤以爲是不可做題外,其實,也就跟着學習節奏走吧——畢竟,考前,曾查漏補缺過呢。

SAM, LCT, 多項式;BSGS, 各種反演……一步一個腳印,慢慢來吧。

加油。

JSOI 2018 Round 2,希望不要重演Day 2的悲劇。

JSOI 2019,期待能創造輝煌。

加油!

OI,前路漫漫;好在,總有一盞燈,提示着我前進的方向。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章