- masashinakata
- 1374
- 0
- 0
- 0
VK Cup 2017 Round 3(Codeforces Round #412 Div.1 + Div. 2) - Togetterまとめ: togetter.com/li/1108250
2017-05-08 05:00:51Wow! Coder DEGwer competed in Codeforces Round #412 and gained 79 rating points taking place 14 codeforces.com/bestRatingChan…
2017-05-08 05:18:38E:単調増加に並べるのが最善。ある人の親というのを「その人をちょうどのscoreで通過したら、後にちょうどのscoreで通過される人」と定義する。親が増えることはあるが、親が親でなくなることはない。
2017-05-08 05:53:17人を追加したとき、その人の親を探す。さらにまだ親がいない人の親を追加した人に近い順に見つかり続けるまで探す。これらの操作は区間addと区間内でx以下の値の内最も左にあるものを答えるクエリを処理するsegtreeを使えば出来る。
2017-05-08 05:54:35質問クエリでは、-1がどこまで続くかを求め、その地点の親みたいなのを探し、いなければずっと+1、いればその人の根(親の親の・・・親)から+1し続けた値が答え。根はunionfind的にやれば均しO(log N)。
2017-05-08 05:56:57あー、そっか。最下点みたいなやつだけ気にすれば良いのか。途中でぶつかる人がいても、代わりにそこで+することにして最下点で-1ではなくminが取られるんだと思えば良いのか。なんか気づかなかったな。
2017-05-08 06:08:05E問題、「まぁ通らんやろ・・・」って捨てた超軽実装な方針があっさり通って、書けばよかったーって思ってる codeforces.com/contest/806/su…
2017-05-08 06:11:29冷静に考えると、C++ならまぁ通るだろうなって信用していい程度の実行時間なので、C++で書くのが最善かなあ。(ただC++のBITは持ってない)
2017-05-08 06:15:59