你說得對,但是我發現我需要多做一些 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 維護即可。