[TOI] 2022 1 模
賽前
賽前真的很緊張,感覺有超多人都會爆打我(結果好像也的確如此), 只能好好把心態穩下來 qwq
賽中
進場時間燒雞,所以整場往後延 10 分鐘。
開場先讀 A
- A diophantus [5.0s, 1 GB]
給你 個數字,問有多少組有序的 滿足 有整數解。
[4]
[15]
[33]
[48] 無額外限制
看了之後大概是數學排容之類的東西,然後看下一題,
- B dungeon [2.0s, 1 GB]
給你一張 點 邊帶權的 DAG,其中一個拓撲排序是 ,
問從 開始,從 開始經過所有下標 剛好各一次並到達 的最短距離。
[7]
[17]
[5] ,保證有一組最佳解經過剛好 個
[27]
[44] 無額外限制
剛看到還以為不可做,但後來想一想就發現他似乎可以用兩邊夾起來 DP,
- C palindrome [1.5s, 1 GB]
給你 個字串 ,總長度是 ,計算有多少數對 使得 或 是回文。
[11]
[26]
[63] 無額外限制
看到的第一想法就大概是 hash 之類的東西,可能可以大小分或者做其他的事之類的,
- D fortress [9.0s, 1 GB]
給你 個點,任三點不共線,問有多少凸多邊形。
[11]
[52]
[37] 無額外限制
剛看到這題的時候感覺不太可做,想要枚舉一些東西或觀察一些等價的條件都沒找到,所以就先放著。
開始決定寫 A
00:43 A 52
只有過到值域是
接下來去看了 B 發現可以定義
01:12 B 56
C 一開始想要分大小
02:25 C 11
這裡最大的問題是,這時候如果我跳題寫 D 很可能心態會穩很多,或是可以嘗試兩題交替想或回去壓 A, 現在回去看 submission 紀錄覺得這時候想很久真的是整場的敗筆之一,
回到那筆 submission,後面的 subtask 都是 TLE 所以我就打算先把它壓成 vector + sort, 這時候腦袋感覺真的很糟,推式子都可以推很久,實作也很燒雞, 應該要想清楚一點再實作,
後來又花了很多時間壓下去,壓下去之後變成 WA,所以我就想加兩個 hash/__int128
的 hash,
這時候真的完全不該花時間在上面做這題,應該要跳題的,
二模的時候要記的提醒自己不要這樣做,
一直弄一直弄弄到 03:22 都沒 AC,反而倒虧了一堆時間。
而且這部分完全反映出我對 hash 不熟,用這樣的 hash 我選定的質數大概要
偷偷回去壓 A 沒壓成功,
後來才決定跳題寫 D,一開始一直不知道要對什麼東西做事,但後來發現可以直接選定最下面右邊那個點,
然後就可以極角排序之後用外積好好 DP 了,目前複雜度是
03:49 D 63
這時候的策略回去做 C 才是對的,因為 A 我感覺我壓不太下去了,然後 B 也沒有更進一步的想法,
大概在剩 30 分鐘的時候,
C 想到一個 hash + trie 的方法,可以
Result
Sum | |||||||
---|---|---|---|---|---|---|---|
A | 48 | 52 | |||||
B | 44 | 56 | |||||
C | 26 | 63 | 11 | ||||
D | 37 | 63 | |||||
Score | 182 |
Rk. 15, 距 2! 線 -40
出場
出場看到一堆人都會 AC,甚至有三個人破台,
我大概就下去了吧,
後來聽到 A 大家都是壓常壓下去的,只有我莫比烏斯反演太慢被卡,
C 有人樸素 hash 就過,甚至有人可以不 TLE,或是帶根號
檢討
我覺得我初選打得還算可以的主要原因是我當下心態有好好穩住,而且開場就能開始全力思考, 這場心態的部分我沒有爆的很差,但中間花在 C 上面燒雞燒太久了, 所以我覺得我要開始好好練習貫徹自己的策略,以及保持能夠好好思考的腦袋, 希望二模可以好好把這個部分補起來,然後正常發揮隨緣看能不能進 2!。
各位選訓加油 ><