CSP貪心記
考之前
有點慌,自己已經高二了,但是平常打模擬賽基本都在打暴力,寫出 T2 都是小概率事件(可能有一定原因聯考出的太難了,但本質還是自己太菜了),大家都會的典中典 ds 題也不會。自己做題,經常做不出綠題和藍題,寫真題的時候也是效果不怎么好。唯一的慰藉是,極小概率會考的比去年低。
倒數第二天,學校運動會純在擺。最后一天,寫了幾道模板,吃了火鍋,回家看了會電視直接睡。考試當天上午,11 點前一直在刷 B 站,最后一個小時繼續寫模板。中午睡覺的時候非常擔心考平衡樹,因為很久沒寫了,上午本來打算復習,結果看手機去了。
考場上
兩點十分到學校,沒看到同學,好像他們都來得比較早。在同一個考場看到了 gmm ,后面還發現了 lyr 。稍微修整了一會,比賽就開始了。考場有一些神人,剛開考就開始敲鍵盤,巨用力,我真的想問手不痛嗎?在這樣喧囂的環境下,看 T1 花費 eps 秒冒出了貪心想法,先每個人選最優,如果不合法,我就考慮枚舉先全取一個部門再貪心調整到 \(n\over 2\) 個,感性比較對,就說等會回來證一下就寫。又看 T2 發現是最小生成樹,觀察數據 \(k\le 10\) ,枚舉村莊再暴力就直接獲得了較高分,意滿離。T3 讀錯題了,以為可以替換多次,完全不會,有點畏懼跳了。T4 感覺是非常有 AT 風格的計數題,嘗試了 dp 和容斥,沒有直接找到比較正確的思路。決定回去細想 T1,T2。
T1 簡要證明了保留 \({n\over 2}\) 個是不劣的,手玩樣例驗證了一下,直接開寫,快速通過。再看 T2,發現顯然只能用最小生成樹,但 \(m\) 太大,不難注意到 \(n\) 比較小,希望時間復雜度與 \(n\) 有關,腦海瞬間有了只保留原圖最小生成樹上的邊,反證了一下很對。一算時間復雜度 \(O(2^knk)\) 有點緊,嘗試繼續優化無果,選擇相信 CCF ,直接寫。比較快速的通過了大樣例,跑的有點快 \(0.3s\) ,打開數據一看沒滿,所以自己又果斷造了幾組拉滿的數據,一測 \(0.7s\) 感覺還行就沒卡常直接想后面的題。
這個時候是 \(4\) 點多,不到兩個小時,切了前兩道題,從來沒在正賽打過這么順風的局,我感覺 NOIWC 已經在向我招手了。事實證明,人不能被喜悅沖昏了頭腦,故事從這開始轉折。開始看 T3 ,發現多次替換基本不可做,就開始看樣例了,沒發現部分分有什么用,開始懷疑題意,意識到可能只能換一次,再讀題發現真只能換一次。暴力就有了想法,找第一個 \(t1\ne t2\) 的位置,枚舉其對應第幾個替換的第幾位,就是 \(ql\) 的,可以獲得 \(50\) 分。再想特殊性質 B ,發現重要的只有 b 位置和差值,一開始以為處理完隨便做(其實是二維數點,當時沒發現)又拼了 \(20\) 分。興奮地開始看 T4,希望拼上 300 。全排列是簡單的,\(m=1\) 很自然的容斥,性質非常好。再看 \(s_i=1\) 發現根本輸不了以為是 \(n!\),然后 \(m=n\) 不是一樣嗎?這么善良?(一算 \(320\) ,朱波已經不知天地為何物了,聰明的朋友應該發現我沒注意到 \(c_i\) 可以為零)。這時應該過了半個小時,如果從這個時候開始寫暴力,結果會不會不一樣?我問我自己。
成也貪心,敗也貪心。因為去年的大眾分是三百二十多,所以還想再掙點分,開始嘗試思考 T3 ,T4的正解,以為暴力比較好寫,只留了一個小時寫暴力加十分鐘檢查前面的。半個小時,毫無收獲,開始寫 T4 暴力,寫完,一測大樣例3,發現假了,又思考了自己做法,很真,打開輸入一看 \(c_i=0\) 沒救了,假完了。嘗試改進,失敗了,安慰自己沒事,加上 T3 300 左右也行。
回去寫 T3 的暴力,先寫的特殊性質 B ,一開始以為處理出來后可以暴力枚舉,發現 \(O(nq)\) 可以獲得 \(0\) 分的好成績,再想排序,將差值相同放一起,雙指針即可。寫之前再一想不對啊,還有一個限制,直接排不是假完了。一看條件的形式,悟了,二維數點,不好寫,就說先寫 \(qL\) 的暴力,用 hash 處理中間的值即可。還有 40 分鐘寫暴力,還能活,為了方便,先寫單 hash ,打算過了再改雙 hash ,非常傻逼的是,到現在為止,我都沒想明白,一道基本是 hash 模板的題,我寫錯在哪?隨著時間的流逝,我的內心越發焦急,如果這個暴力寫不出來就墜機了,我該怎么辦?很快就剩 10 分鐘了,我還沒檢查前面的代碼,也還沒交題,監考老師第二次重復讓我們交題,我只能回去檢查加交題,最后剩幾分鐘還在掙扎,但是樣例 \(1\) 一直輸出 \(1,0\) 徹底沒救。最后還是把可以獲得 \(0\) 分的代碼交了上去,當做我寫過這道題的紀念吧。
考之后
出去和同學吃飯,沒有人均三百分,不然可能真的吃不下去,但不少人都會 T3 的正解,大失敗。一開始在閑聊,聽某些 P 話哥說 P 話,后面玩了圖尋和UNO,打臺球沒去,回家玩一個大火的四字游戲,【數據刪除】。
第二天,發現自己離 T3 的正解非常近,性質 B 的二維數點做法,稍微推廣一下就是正解。T4 \(m=1\) 啟示的容斥做法因為不會某個 trick 遺憾離場,直接的 dp 做法,撞到了比較像的狀態(但沒有意思到大于 \(j\) 的可以先不考慮),一心打暴力,也沒有細想。賽后比較快的改了兩道題,比去年強,但是還是太弱了,最后兩道題都處在差一點的狀態里,不知道 NOIP 前這一個月能否再進一步。
深刻反思了自己最后兩小時 \(20\) 分的光輝戰績。主要問題是對自己代碼實現能力的盲目自信,對暴力算法沒有仔細驗證,以及在考場沒能維持心態的穩定。第一個問題,我的計劃是每一道題,寫的時候提前規定時間,明確用時。剩下的兩個問題只能在聯考中多加注意,刻意練習,希望能有所改進。
應該沒希望去 WC 了,略有一點遺憾,學了很久的競賽,當現在為止參加過最高級別的比賽就是 NOIP 了,希望退役前還是去看看不一樣的風景吧。但也感到慶幸,這是 CSP ,不是 NOIP 不會讓我現在就滾回去學 whk ,(如果 NOIP 這樣失去 60-70 分有點難繃)。好好吸取教訓,NOIP 再戰一次。

浙公網安備 33010602011771號