arc111-solution-post

ARC111 Solution

link


A - Simple Math 2

\[\begin{aligned} \lfloor\frac{10^n}{m}\rfloor\bmod m&=\lfloor\frac{10^n}{m}\rfloor-m\lfloor\frac{10^n}{m^2}\rfloor\\ &=\frac{m\lfloor\frac{10^n}{m}\rfloor-m^2\lfloor\frac{10^n}{m^2}\rfloor}m\\ &=\frac{10^n-10^n\bmod m-(10^n-10^n\bmod m^2)}m\\ &=\frac{10^n\bmod m^2-10^n\bmod m}m\\ \end{aligned}\]

直接快速幂算即可。

(*1500~1600,数学)


B - Reversible Cards

建模:把颜色建点,每个卡牌在两个颜色之间建边。

现在考虑每个连通块,设连通块大小为 \(k\)

如果连通块内有大于等于 \(k\) 条边,我们随便找出一个生成树,以一个连着非树边的点作为根,每条边选儿子的颜色,根节点用那条非树边来选即可。这样这个连通块都能染上色。

否则如果只有 \(n-1\) 条边,那么每条边选儿子的颜色,除了根都能选上。

综上答案是颜色数减去树的数量。

(*2000~2100,构造)


C - Too Heavy

建模:连边 \(i\to p_i\)。由于排列的优秀性质,会形成若干个环。

这个题还有一个优秀性质:如果两个人进行了交换,\(a_i\) 大的那个换完肯定不会累。

我们分别考虑每个环。现在从中选出 \(a_i\) 最小的人,把他想要的东西换给他。

现在这个人不管累不累,我们把他从环中删除,由于他是 \(a_i\) 最小的,和他换东西的人肯定是不累的。

我们把环重新拼起来,重复上述过程直到剩下一个人,这个人手上一定是他想要的东西。

那么这个环用了 \(n-1\) 次交换完成,这个当然也是答案的下界。因此答案是 \(n\) 减环数。

(*2400~2600,构造)


D - Orientation

首先 \(c_u>c_v\) 的话肯定是从 \(u\) 连到 \(v\),vice versa.

现在只考虑剩下的 \(c_u=c_v\) 的边,这些边会形成一些连通块,连通块内的 \(c\) 全部相等。

由于能到达的点数量都是一样的,那么对于连通块内任意的 \(u,v\),它们肯定可以互相到达(否则 \(c\) 一大一小)。

即这个连通块标完方向应该是强连通的。

因为保证有解,强连通图又一定有一个有向环(把所有 \(i\)\(i+1\) 路径并起来),直接 dfs 一遍顺便标方向即可。

(*2300~2500,图)


E - Simple Math 3

只需要枚举到 \(Ci-Bi+1<D\),即 \(i\le\lfloor\frac{D-2}{C-B}\rfloor\)。设 \(m=\lfloor\frac{D-2}{C-B}\rfloor\)

现在我们保证了 \([A+Bi,A+Ci]\) 之中元素个数小于 \(D\),这其中有一个 \(D\) 的倍数当且仅当 \(\left\lfloor\frac{A+Ci}{D}\right\rfloor-\left\lfloor\frac{A+Bi-1}{D}\right\rfloor=1\)

又考虑到 \(\left\lfloor\frac{A+Ci}{D}\right\rfloor-\left\lfloor\frac{A+Bi-1}{D}\right\rfloor\) 要么是 \(0\) 要么是 \(1\),答案即为

\[m-\sum_{i=1}^m\left(\left\lfloor\frac{A+Ci}{D}\right\rfloor-\left\lfloor\frac{A+Bi-1}{D}\right\rfloor\right) \]

直接类欧带走即可。

(*3000~3100,数学)


F - Do you like query problems?

和先转成期望,最后答案乘上方案数。

考虑求每次操作给 \(ans\) 加上的期望值。设 \(a_{i,j}\) 表示 \(a_i\)经过 \(j\) 次操作的期望值,第 \(j\) 次操作给 \(ans\) 加上的期望值即

\[\frac1{2m+1}E(\sum_{i=l}^r a_{i,j}) \]

要求即为

\[\sum_{j=1}^q\frac1{2m+1}E(\sum_{i=l}^r a_{i,j}) \]

\(a_i\) 被选在区间内的概率是 \(\frac{i(n-i+1)}{\frac{n(n+1)}2}\),由期望线性性,每个 \(a_i\) 可以单独算贡献,即

\[\begin{aligned} \sum_{j=1}^q\frac1{2m+1}E(\sum_{i=l}^r a_{i,j}) &=\sum_{j=1}^q\frac1{2m+1}\sum_{i=1}^n\frac{i(n-i+1)}{\frac{n(n+1)}2}E(a_{i,j})\\ &=\sum_{j=1}^q\frac1{2m+1}\sum_{i=1}^n\frac{i(n-i+1)}{\frac{n(n+1)}2}\sum_{k=1}^{m-1}kP(a_{i,j}=k)\\ &=\sum_{j=1}^q\frac1{2m+1}\sum_{i=1}^n\frac{i(n-i+1)}{\frac{n(n+1)}2}\sum_{k=1}^{m-1}\sum_{t=1}^{k}P(a_{i,j}=k)\\ &=\sum_{j=1}^q\frac1{2m+1}\sum_{i=1}^n\frac{i(n-i+1)}{\frac{n(n+1)}2}\sum_{t=1}^{m-1}\sum_{k=t}^{m-1}P(a_{i,j}=k)\\ &=\sum_{j=1}^q\frac1{2m+1}\sum_{i=1}^n\frac{i(n-i+1)}{\frac{n(n+1)}2}\sum_{t=1}^{m-1}P(a_{i,j}\ge t)\\ \end{aligned}\]

现在设一次操作对 \(a_i\)有效的,当且仅当满足:

  • 这次操作是修改操作,修改的区间包含 \(a_i\)

  • 若是 \(max\) 操作,则需要 \(v\ge a_i\),若是 \(min\) 操作,则需要 \(v<a_i\)

那么发生一次有效操作的概率是

\[\begin{aligned} P_i&=\frac{2m}{2m+1}\times\frac{i(n-i+1)}{\frac{n(n+1)}2}\times\frac{a_i+m-a_i}{2m}\\ &=\frac{m}{2m+1}\times\frac{i(n-i+1)}{\frac{n(n+1)}2} \end{aligned}\]

现在来计算 \(P(a_{i,j}\ge t)\),这个就是最后一次有效操作的 \(v\ge t\) 的概率。

我们并不关心最后一次有效操作是哪次操作,除非之前的所有操作都不是有效操作。这个的概率是

\[(1-P_i)^{j-1} \]

\(j\) 是操作次数,\(-1\) 是因为我们在算答案的时候钦定第 \(j\) 次是询问操作。所以

\[P(a_{i,j}\ge t)=(1-(1-P_i)^{j-1})\frac{m-t}{m} \]

代回去

\[\begin{aligned} \sum_{j=1}^q\frac1{2m+1}E(\sum_{i=l}^r a_{i,j}) &=\sum_{j=1}^q\frac1{2m+1}\sum_{i=1}^n\frac{i(n-i+1)}{\frac{n(n+1)}2}\sum_{t=1}^{m-1}(1-(1-P_i)^{j-1})\frac{m-t}{m}\\ &=\sum_{j=1}^q\frac1{2m+1}\sum_{i=1}^n\frac{i(n-i+1)}{\frac{n(n+1)}2}(1-(1-P_i)^{j-1})\sum_{t=1}^{m-1}\frac{m-t}{m}\\ &=\sum_{j=1}^q\frac1{2m+1}\sum_{i=1}^n\frac{i(n-i+1)}{\frac{n(n+1)}2}(1-(1-P_i)^{j-1})\times\frac{m-1}2\\ &=\frac{m-1}{(2m+1)n(n+1)}\sum_{i=1}^ni(n-i+1)\sum_{j=1}^q(1-(1-P_i)^{j-1})\\ \end{aligned}\]

后面是一个等比数列求和,那么复杂度就是线性对数。

(*3300~3500,数学)

posted @ 2024-02-27 20:20  iorit  阅读(56)  评论(0)    收藏  举报