1. 程式人生 > 其它 >NOIP-2021(SC)遊記

NOIP-2021(SC)遊記

NOIP-2021(SC)遊記

Day -2

2021.11.18 早上七點半到學校,統一模擬考了套組合題,聽說是信心賽

T1 Luogu P5837 一眼看去費用流,30分鐘碼完過了小樣例,一測大樣例WA了,稍微改了改就過了,但是一直感覺不對勁,沒怎麼想就去做T2了

T2 Luogu P5836 簡單的樹上LCA,先dfs一遍求兩種奶牛出現次數從根節點開始的字首和,然後每次詢問用兩個詢問節點的字首和加起來再減去兩倍LCA的父節點的字首和,看有沒有詢問的奶牛出現就行了,碼了40多分鐘才碼完,倍增求LCA一開始寫掛了,有點慢

T3 Luogu P5838 T2的加強版,奶牛種類從 \(2\) 種增加到了 \(n\)

種,繼續T2做法肯定要MLE+TLE,去廁所冷靜了一下,發現維護字首和可以主席樹優化,每個節點插入和空間都是 \(\log n\) 的,每次dfs到一個節點就從它父節點的版本上更新然後建立一個新節點就行

在T2程式碼上面改沒花多久就碼完了,準備除錯的時候發現我新建了一個cpp然後在T2程式碼上改了而且儲存了!我T2程式碼沒了,不過不慌,T2是T3弱化版,用T3程式碼也能過,不過還好沒有關閉過IDE,反覆Ctrl+Z程式碼又回來了,試了試樣例WA飛了,調了一下發現原來是統計答案的地方錯了,T2T3全都是錯的(T2水大樣例害人不淺),不過還好問題不大,改了一點點就對了,又看了一遍感覺沒什麼問題就去做T4了,還剩大概一個小時

T4 AtCoder ARC-069 D 一看完全不會沒有思路,想碼個 \(\Theta(n\log n\cdot2^n)\) 暴力,結果一看部分分 \(n\le100\),亂寫了個貪心然後特判了一下 \(n\le20\) 的時候用暴力就放掉了

考完了同機房神犇們說T4是2-SAT,但是我完全不知道什麼是2-SAT,又被吊錘了,T1事後立馬發現演算法錯的,就一個簡單的Dij跑個最短路就完了,問了一圈疑似所有人都A了就我沒A,期望得分: \(0+100+100+0=200\)

實際得分:\(30+100+100+23=253\)

T2T3沒掛分很滿意,T1假演算法還是A了3個點,最震驚的是T4這個貪心居然過了6個點,不得不說資料有點過水

下午把T1改了,學了下2-SAT,感覺真是個神奇的演算法,就是像 \(\text{Tarjan}\) 一開始不好理解,晚上做了兩道2-SAT的板子題,又練了一下一堆基礎板子,然後就是教練一直在說考前注意事項了,之前還沒發現,現在突然感覺好緊張,停課了這麼久,希望能有個好結果吧……

Day -1

(Waiting for updating...)