ARC 雜記第二彈

SFlyer發表於2024-10-14

你說得對,但是我發現我需要多做一些 ARC。會把我認為的笨笨題去掉。

ARC 185 A

首先因為 \(n<m\),所以如果一個人決策的時候還剩 \(\ge 2\) 個數,那麼必定有一個使得 \(\bmod m\neq 0\)。因此變成了問 Alice 是否可以成功弄完 \(n\) 個數。發現她的和是定的,現在就是要求存不存在 \(x\) 使得 \(2sum(n)-x\equiv 0\pmod m\)

ARC 185 B

從前往後處理,維護現在最大上一個 \(lst\) 是多少並且維護現在前面的數要加上最少多少,分幾種情況:

  • 如果 \(a_i>lst\),我們需要在前面的數們多加上 \(a_i-lst\),即 \(nd\gets nd+a_i-lst\)

  • 如果 \(a_i\le lst\) 但是 \(nd\ge lst-a_i\),即不能抵消,\(nd\gets nd-(lst-a_i)\)

  • 否則可以抵消,\(nd\gets 0\)\(lst\gets [sum/cnt]\)。因為可以均攤。

最後判斷 \([nd=0]\) 即可。

ARC 185 C

NTT,會了但是不會寫。

ARC 185 E

腦子變笨了。設 \(f_i\)\(1\sim i\) 的答案。則有遞推式 \(f_i=2f_{i-1}+\sum_{j=1}^{i-1}2^{j-1}\times \gcd(a_i,a_j)\)

因為 \(n=\sum_{d\mid n}\varphi(d)\),所以後面柿子變成 \(\sum_{j=1}^{i-1}2^{j-1}\times \sum_{d\mid a_i,a_j}\varphi(d)=\sum_{d\mid a_i}\varphi(d)\sum_{a_j\mid d}2^{j-1}\)

可以 \(\mathcal{O}(n\max d(A))\) 求出。

ARC 174 C

\(f_i,g_i\) 為現在弄出來了 \(i\) 個數以後兩個人的答案。令 \(p=\frac{i}{n}\)。則 \(f_i=(1-p)g_{i+1}+p(g_i+1),g_i=(1-p)f_{i+1}+p(f_i+1)\)

發現迴圈了,因此考慮將 \(g_i\) 帶入然後移項。變成 \(f_i=\frac{(1-p)g_{i+1}+p(1-p)f_{i+1}+p^2}{1-p^2}\)

ARC 174 E

考慮答案是沒有限制的個數減去有限制的個數。列舉第一個比原序列少的地方,考慮限制了一個數會有什麼影響。

會對限制的數的大小和出現位置有限制,就變成了一個二維偏序,bit 維護即可。