APIO2021参加記

ハイライト:2問目でセグメント木を 3 種実装

競技前

特に準備はしませんでした。

競技

全体

†long queue† うーん。

1問目 (9点)

高い部分点については何もわかりませんでした。

$9$ 点分の部分点については $\sum_{k=1}^{N} k^2 = \frac{N(N+1)(2N+1)}{6}$ を書けばもらえました。

2問目 (100点)

最短距離を前計算すれば $O((N+Q)N \log N)$ 時間でできます。

適当にダブリングし、始点、経路、終点をそれぞれダブリング上二分探索で選ぶと $O((N+Q) \log N)$ 時間になって満点がとれました。

実装にてこずってかなり時間をかけた気がします。 3 割くらい long queue のせいだと思っています。

(5/27修正:計算量に $Q$ が考慮されていなかった)

3問目 (36点)

前 $2$ つの部分点はもはや別の問題なので個別にプログラムを書きます。簡単です。

木DPをすれば多項式時間で解けることが明らかです。

自然に書くと時間計算量 $O(N^2 \log N)$ なので、合計 36 点がとれました。

ここで時間が切れました。

タイトルとURLをコピーしました