1. 程式人生 > 其它 >2021 CSP JS 遊記

2021 CSP JS 遊記

Day -6

考前打了一場ABC(本人ATC菜死了)

見證了同機房的dalaosuper蒟蒻喜奪ABC Rk1

誒,菜死了,比完今年就退役了(指普及組)

Day -5~Day -2

連續四天模擬賽

連續四天掛分100+(暗示CSP掛至少100分)

寫了一些同機房的金牌爺cmd推薦的AT和CF好題,思維獲益良多。

Day -1

去酒店之前吃了M記,希望玄學保佑。

前往酒店,本來想和石中一起去酒店(CS)的,但他們不用比J組,所以和自己學校初中的同學去了。

還是去年的酒店(去年CSP掛分掛慘了)

21:00才回到酒店,吃了碗老壇酸菜牛肉麵(真香),然後直接睡了

Day 1 上午

早上在睡眼朦朧中被叫醒,匆忙地到酒店餐廳吃了早餐就前往廣大附中了。

T1是道幼兒園高質量題目,直接看有無跨過n-1,有則輸出n-1,否則輸出r%n,5分鐘就一遍過了大樣例。

T2乍一看像是一道資料結構題。嚇了一跳,看到修改不超過5000次就知道可以暴力搞了,但是本來J組就是來整活的(初一初二都拿了一等獎),然後重現CSP-J2020,直接上平衡樹,很快就碼完了。

T3 map直接做(啥,你說雜湊?GP狂喜),大樣例還挺強的,檢測字串是否合法改了好幾次才過大樣例。

看了下時間,才過了1.5h。

T4 第一眼就覺得搞兩個雙向連結串列模擬,但覺得寫起來太麻煩。後來想了想維護塊的連結串列可以改成棧模擬,裡面的連結串列乾脆一不做二不休,改成了左偏樹直接合並。

寫完T2和T4的拍子還剩1h。

多出的時間不知道幹什麼,於是將T4變數名分別改成Jia,Ran,Jin,Tian,Chi,Shen,Me(嘉然今天吃什麼)。

考試結束後將桌面圖示擺成了“AK”狀,期望今年AK。

期望得分:100+100+100+100=400
民間資料:100+100+100+100=400

Day 1 下午

主要還是來考提高組的,考前與石中的巨佬們又聊了一下可能考的演算法(別看了,沒有網路流)。

T1 想了10分鐘,感覺就是要寫一個支援刪除和尋找後繼的資料結構,一時沒有想到set,寫了離散化+線段樹上二分,最後寫了1h寫完,一遍過了大樣例就爬了。(國內和國外航班兩種我直接將程式碼複製一遍,有一個a沒有改成b,然而過了大樣例,為掛分埋下伏筆)

T2 一開始想從前往後dp,發現不好維護,再看合法的字串兩端一定是括號,遂直接區間dp,ASB的情況考慮維護SF[l][r]表示[l,r]區間內變成一個*號字串S+一個合法字串的方案數,轉移考慮左邊是f[l][d],右邊是SF[d+1][r]。

然而沒過第二個樣例,檢查了30min才發現拼接方式不同可能導致算重,於是強制規定右邊是單獨一個合法字串,不是由拼接得到的,重新記了O[l][r]表示方案數,SO[l][r]表示一個*號串和單獨串拼接的方案。然後直接過了大樣例。

發現考試過了一半時間。

T3 第一眼看沒什麼思路,後面考慮從兩邊填,可以發現當前填的數的對應數,與已經填的數的對應數一定是在原串的連續子串,再考慮貪心,發現貪心左邊對右有無結果無影響。於是花30min寫完(說實話,真的感覺3<1<2<4)。

T4 題面超長,感覺沒有什麼想法。手玩樣例後發現,就是將點染色,最後答案是異色點之間邊權值和,要使答案最小,最小割模型,覺得不太可能考網路流,便又多想了一下,後發現只剩1h果斷寫Dinic走人,期望得分60pts。

期望得分:100+100+100+60=360
冥間資料:0+100+100+60=260(洛谷資料a和b應該是rand的),去別的oj看我T1掛分都不多,HydroOJ直接給我過了

出分了

提高 60+100+100+60=320

普及 100+100+100+100=400

總結

掛分掛慘了,希望明年高一別掛分。