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 维护即可。

posted @ 2024-10-14 15:01  SFlyer  阅读(25)  评论(0编辑  收藏  举报