ARC008 2016.10.25

サークルで解いた


問題

C: THE☆たこ焼き祭り2012 - AtCoder Regular Contest 008 | AtCoder

解法

全員に対しての最短経路を求めておいて、遠い人から順に配っていけばよい。
自分に対してはすぐに配れることに注意する。(N = 2で1秒以内に配れる場合など)

問題

D: タコヤキオイシクナール - AtCoder Regular Contest 008 | AtCoder

解法

セグメントツリー。
とりあえずpは座標圧縮しておく。
葉ノードには、a,bのペアを持たせておく。(初期値は(1,0))
それ以外のノードは、左の子がla,lb、右の子がra,rbを持っているとすると、
ra \times (la+lb) + rbとする。
根の値が全ての機械を通した時の演算結果になる。
時系列順にセグメントツリーを更新しながら、答えを求めればよい。