---
# System prepended metadata

title: 2025 TOI初選心得
tags: [TOI, 心得]

---

# 2025 TOI初選心得
### 這次真的大破防，死得很難看😭
## 賽前準備
比賽那一周週四感冒了，基本上沒有什麼練習，只有打一個[ABC](https://atcoder.jp/contests/abc395/) (上棕了 好ㄟ)。
我想說畢竟都犧牲了一段二段成績了，再加上寒假**TOJ**也刷了挺多，應該可以有rk.100內吧
(現在想我根本就是小丑，被打爆嗚嗚嗚)
## 比賽當天
**感冒完全沒好**，一直流鼻涕，但怕被[Blame](https://hackmd.io/@blameazu)用鍵盤打，我就一直吃鼻涕:yum:
賽前一小時我才發現我沒帶筆，還好有rk.1的[<font color="#F7A004">Brinton</font>](https://codeforces.com/profile/Brinton)借我:D
但我必須說，我真的有被我的同桌搞到。
他按鍵盤的方式挺特殊的，我不太知道薄膜鍵盤式怎麼發出那麼大的聲音的，`Backspace`不好好按住一個字一個字按，比我玩遊戲還吵:angry:

## 結果

rk. 157/363
score 142/500
[scoreboard](https://tobiichi3227.eu.org/rank/Ranking.html)
![image](https://hackmd.io/_uploads/BkTMAX7okg.png)


接下來講我賽中的想法

:::success
### pA.忘記題目名字了:D (100/100)
**演算法:無**
給$N$個非負整數$A_i$ , $1\le i \le N$ , 依照$A_i$化為二進位時最大連續`1`長度排序，如果相同就由原本數字大小排序

$sol.$ **暴力:D**
:::

:::danger
### pB.鬆餅 (0/100)
**演算法:Greedy??**
把鬆餅分類的題目，給$N$個煎盤(?), $M$為一個煎盤的鬆餅高度上限，最後給你$N-1$個煎盤鬆餅塔的資訊(有一個是空的)，叫你輸出能讓鬆餅分好纇的操作，操作數不能超過$9NM$

看完我就直接跳過了，根本沒想法
賽後聽rk.1的[<font color="#F7A004">Brinton</font>](https://codeforces.com/profile/Brinton)講題的時候我才發現兩兩鬆餅交換的操作數可以降到7，所以只要寫個交換的函式就好了。
:::

:::warning
### pC.~~不聽Blame上STL的後果~~ (6/100)
**演算法:Sliding Window?**
一開始就想到可以用**Sliding Window+map**紀錄頻率，但我完全不知道有**set**這個東西可以用，想當初[Blame](https://hackmd.io/@blameazu)在上STL的時候我還在寫DP，我想說:「set是什麼東西，沒用過ㄟ，應該不常用吧，不看了，繼續燒我的DP」
然後代價就是我pC直接燒雞😭😭😭
:::

:::warning
### pD.喇分時間 (36/100)
**演算法:我不知道:D，但我覺得可以用DP**
有一個地圖，找各個不同寬度的 (同色/異色) 階梯形狀數量

當時間只剩下40分鐘時，我知道我必須喇一點分數，所以我就來寫pD (我沒有要寫異色的部分)
我發現我可以從寬度$1$的樓梯一直檢查到寬度$min(a, b)$的樓梯並檢查每個點(樓梯的右下角)的上方及左方是否為`現在寬度-1`的同色樓梯，如果兩個都是樓梯，且顏色相同就記錄起來。

但其實只用的到寬度為$1, n-1, n$的樓梯資訊而已，忘了滾動(?)然後就MLE了:D
:::

:::danger
### pE.根本沒看阿哈哈哈 (0/100)
**演算法:||你在期待什麼?||**
不會D:
:::

## 總結:
經過這次被電爛的比賽，有點不知道我接下來要做啥了。