ARC 杂记第二弹
你说得对,但是我发现我需要多做一些 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 维护即可。