noteレッドコーダーへの道のりは遠い。東西に無限に続く1本の大通りがあり、数直線とみなせる。大通りでN回の工事が行われ、i番目の道路工事はSi-0.5からTi-0.5の時刻にXi地点を通行止めにする。Q人の人が座標0におり、i番目の人は時刻Diで出発し、速度1で進む。工事中の通行止めの地点に到達するとそこで止まる。各人の進む距離を求めよ。無限に進む場合は-1を返せ。10^9同じ地点で複数の工事が時刻が重なるように実施はされない解法1各工事について、いつ出発すればその工事地点で止まることになるかを考える。Ti-Xi)の時間に出発する人がこの工事地点で止まりうる。複数の工事がある場合は、一番Xiが小さいところで止まる。範囲更新できればよいので、座標圧縮したものに対して遅延セグメント木でXiが大きい方から入れていき、小さい時刻から人の出発時刻とセグメント木の値を見比べて答えていけばよい。(座圧の時に、各人の時刻も一緒にいれておくと、簡単に問い合わせできる)解法2遅延セグメント木ではなく、setを使って求めることができる。Ti-Xi)の範囲にある人を取り除いていけばよい。Si-Xiをlower_boundで探して、イテレータを回してTi-Xi未満の人をeraseしていく。N*Mのマス目があり、各マスには障害物がある場合がある。»プロフィールid:phyllo_algoレッドコーダーへの道のりは遠い。)はてなブログをはじめよう!phyllo_algoさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。