Codeforces Round #551 Div. 2

A. Serval and Bus

算出 $t$ 之后每班车的最早时间,取最小值

B. Serval and Toy Bricks

每个有方块的位置尽可能取高,即 $\min(a[j], b[i])$

C. Serval and Parenthesis Sequence

统计一下要放多少的$($和$)$,显然前面尽量放$($是最优的,然后 check 判断

D. Serval and Rooted Tree

考虑最下面两层,如果答案再这棵子树中,那么:

  • 如果是 min 操作,$ ans = k - leaves + 1 $
  • 如果是 max 操作,$ ans = leaves = k - 1 + 1 $

我们定义 f[i]为 i 子树中的有效叶子,那么 ans = k - f[1] + 1,且:

  • 如果是 min 操作,$ f[u] = sum(f[v]) $
  • 如果是 max 操作,$ f[u] = min(f[v]) $

E. Serval and Snake

不难发现如果一个矩阵中有一端,那么交点为奇数, 然后乱搞就好了 枚举找到头和尾的行或者列,然后二分就好了。

然而可怜的 cycleke 常用二分方法超限了,不得不临时想(猜)其他方法

comments powered by Disqus