机房颓废合集。

发布时间 2023-07-31 08:16:49作者: Iridescent41

一把 VP 2h,我每天在机房 10h+,那我是不是每天能打 5 把啊?

\(\mathbb{ARC \ 143}\)

A B C D E F
300(3) 500(1) 600(1) 700 700 -
8:14 16:18 31:35 57:21 86:10 -

performance: 2706

找了近几场里面难度最平和的一场。 /kk
脑子还算清醒,但是这套题属实是送我技能树上了。

A

哈哈,WA 了三发因为不开 long long
如果两个小的加起来都耗不完最大的,那就无解,否则每次都拿最大和次大的耗,等到三个数相同了就一起减小,发现次数就是最大数。

B

容斥算算就行了,具体做法是钦定不合法的位置用总数减去即可。
式子是 \((n^2)! - ((n - 1)^2)! \cdot n^2 \cdot \binom{n^2}{2n - 1}((n - 1)!)^2\),推导过程还算 ez。

C

博弈中跟棋操作非常常见,于是上来就把所有的 \(a_i\)\((x + y)\) 取模。
然后分类讨论一下 \(a_i\)\(x, y\) 的大小关系,分别统计先后手能够取的堆数,但是注意一下先后手能同时取到的情况,这时先手只能先去取这一堆才能更优。

D

这是什么?一眼二分图?
拆一下,每个点拆成入度和出度,所以这道题变成了给无向边定向,然后这题我会了。
丢一个很相似的problem
做法是在 dfs 树上的边方向不变,返祖边从后代指向祖先。

因为性质是原图上的 \((u, v)\) 如果是桥,那么现在无论怎么连都还是桥。
如果 \(\exists u \rightarrow v, v \rightarrow u\),那么我删一条边无所谓,这是不影响连通性的。

E

又来?首先保证有解,老套路了,从叶子开始(我想了很久,为什么这一类在树上操作的题从叶子开始能很快突破,核心在于叶子节点的性质很强,只需要考虑它和它父亲的联系,后续的操作可以向上合并)如果它是白色,那么必须比它的父亲先操作,否则它会因为父节点的操作变成黑色,导致无解,反之,必须比它的父亲后操作。
于是反复利用这个性质往上合并,
这样可以把 DAG 建出来,直接优先队列贪。是否有解直接看根节点计算后颜色即可。

F

全网就没啥人过,做不动了。

\(\mathbb{ARC \ 154}\)

A B C D E F
300 400(1) 500(1) (3) - -
3:42 10:23 30:21 - - -

performance: 2133

绷,这个 D 做得确实下饭 ? 但是好消息是没做出来(这样就没有罚时了)

\(\mathbb{ARC \ 154 \ A}\)

贪心换,小的全放 \(A\) ,大的全放在 \(B\)

\(\mathbb{ARC \ 154 \ B}\)

发现操作等价于把前面 \(k\) 个拿出来随便插,那么直接判断后面的是否是 \(s\) 的子串就可以了,套二分就可以过了。

\(\mathbb{ARC \ 154 \ C}\)

直接模拟即可。。。

\(\mathbb{ARC \ 154 \ D}\)

这个交互有点意思,我们可以首先把 \(1\) 的位置用 \(n\) 次问出来。
问出来之后就可以 stable_sort 排序直接过了。

\(\mathbb{ARC \ 154 \ E}\)

首先改写这个贡献的式子

\[f(P) = \sum_{i = 1}^{n} (\sum_{j < i}[Q_i < Q_j] - \sum_{j > i}[Q_i > Q_j]) \times i \]

假设我已经拿到了最后的序列,那么根据定义,每个点的贡献是

\[g(i) = (\sum_{j < i}[Q_i < Q_j] - \sum_{j > i}[Q_i > Q_j]) \times i \]

考虑这个贡献用动态的方式呈现,首先这个序列有序,对于一个位置 \(i\) ,将他右边的一个数 \(j\) 放在前面去,这个位置变成 \(i + 1\) ,此时贡献是让 \(g(i)+1\) ,反之,放一个左边的到后面去,位置变成 \(i - 1\) 贡献 \(g(i) - 1\) ,那么可以得到 \(g(i)=i(i - Q_i)\)
那么此时计算 \(Q_i\) 在某个位置上的期望就可以了,很容易发现,这个期望很对称,将 \(Q_i\) 放在 \(i\) 和放在 \(n - i + 1\) 这两个位置上的方案数相同,那么最后位置的期望就是 \(\frac{n + 1}{2}\)