yukicoder - No.878 Range High-Element Query

問題リンク

解説

前処理として、各要素の左にあるものかつその要素より大きいもので、最も近いものをメモしておきましょう。

これはstd::setなどで簡単にできます。

次にクエリを先に読んで lが小さいものから見ていきます。

現状条件をみたしてるものをBITにいれていけばよく、 lが終わるたびに、最初にメモしたのが lだったものをBITに入れていきましょう。

計算量はO((N+ Q) \log N)です。

提出コード

yukicoder.me