Sharpless298's Blog

Codeforces Mashup 4

September 11, 2025

CF 1422C

Description

Link

Solution

考慮每個 digit 的貢獻,從右邊數過來,第 $i$ 個 digit 會貢獻 $10^{i-1}\cdot (i * \sum_{i+1}^n d_i + \frac{1}{2}(1+n-i)\cdot (n-i)\cdot d_i)$ 。

時間複雜度 $O(n)$ 。

AC Code

CF 1550C

Description

Link

Solution

觀察

只需要檢查所有長度為 $3$ 和 $4$ 的 subarray 就好,所有被夾在中間的點都不能和其他點構成 bad triple ,長度 $3$ 檢查 $1$ 次,長度 $4$ 檢查 $4$ 次,答案別忘了再加上長度 $1$ 和 長度 $2$ 。

時間複雜度 $O(n)$ 。

AC Code

CF 1695C

Description

Link

Solution

DP + bitset

AC Code

CF 1393C

Description

Link

Solution

定義 $cnt_i$ 為數列 $a$ 中 $i$ 的個數, $cntcnt_i$ 為 $cnt_i$ 的個數。

計算完 $cnt$ 和 $cntcnt$ 後,找到 $x = \max\{i \mid cntcnt_i \neq 0\}$ ,我們要嘗試在 $(x-1)$ 個間隔嘗試填上其它的數字最大化 $cnt_i = x$ 這幾個數之間的間隔,因此答案為 $cntcnt_x+\frac{(n-cntcnt_x\times x)}{x-1}-1$ 。

時間複雜度 $O(n)$ 。

AC Code

CF 1814B

Description

Link

Solution

當長度為 $k$ 時總花費為 $$\left\lceil \frac{a}{k} \right\rceil+\left\lceil \frac{b}{k} \right\rceil+(k-1)$$

把上高斯去掉後用算幾不等式得到 $k=\sqrt{a+b}$ 會有最小值,但前面這樣算是假設為一維的情況,二維的情況比較複雜,我枚舉到 $k\in [1,\sqrt{2\max(a,b)}]$ 才 AC 。

時間複雜度 $O(\sqrt{\max(a,b)})$ 。

AC Code