Asia Yokohama Regional Contest 2018

From EOJ Wiki
Jump to navigation Jump to search

Problem A

Solved by zerol. 00:33 (+)

Problem B

Solved by ultmaster. 01:09 (+)

题意:从一个集合里选一些数使得构成等差数列最长。

题解:d[i][j] 表示到 i,上一个是 j,最长是多少。转移的时候在一个 map 里反查一下,就是 $O(n^2 \log n)$ 了。

Problem C

Solved by zerol. 01:39 (+1)

题意:想象一个中间过道只能容纳一人的火车,过道两边有两排座位,每个人在每个单位时间内只能移动一格,同时每一个格子内至多只能有一个人,问需要多少时间能使所有人从出口离开。

题解:计算出所有人的不考虑阻塞的离开时间。然后排序后模拟一下,保证同一个时间至多只有一个人离开,答案就是最后一个人的离开时间。

Problem D

Solved by kblack. 02:34 (+)

Problem E

Unsolved. (-2)

Problem F

Unsolved.

Problem G

Solved by kblack. 02:56 (+)

Problem H

Unsolved.

Problem I

Unsolved.

Problem J

Unsolved.

Problem K

Unsolved.

题意:田忌赛马。让你给出一种方案使得在赢得场次最多的前提下,字典序尽可能大。

题解(口胡):我们考虑逐位确定。先把当前的答案求出来(我们首先不能损失这个答案)。求答案的方法就是:把两个序列都按顺序排,对于每一匹马找尽可能小的能战胜它的。最后确定方案的时候我们考虑当前位上是要被打败还是不要被打败(就是选一个最小的可以打败它的放在上面,然后其余的再跑一遍上面的求答案的方法,看答案是否不变)。

  • 如果要被打败,那么我们就二分查找最大的马可以使答案不变。
  • 如果不被打败,那这一位我们已经不要了,所以显然也是马越小越好,但是字典序又要大,所以也二分查找最大的马使得后面还能不变。

复杂度是 $O(n^2 \log n)$。