難易度評価

難易度を1〜10段階で評価できます。投票はあとから変更・取り消しできます。

難易度(投票) 未投票 (0票)

投票の分布

まだ投票はありません。

  1. Lv.10票
  2. Lv.20票
  3. Lv.30票
  4. Lv.40票
  5. Lv.50票
  6. Lv.60票
  7. Lv.70票
  8. Lv.80票
  9. Lv.90票
  10. Lv.100票

難易度の目安を見る ↗

ログインして難易度を投票

外部サイトへ移動します

リンク先の URL を確認してから開いてください。

別タブで開く

Filtered Records

作成者 mackerel38

テスター yukimy32

難易度(作成者設定) Lv.5

難易度(投票) 未投票 (0票)

実行時間制限
2 秒
メモリ制限
512 MiB

解説

クエリ XX の答えは、Wi≤XW_i\le X であり、かつ j<i, Wj≤Xj\lt i,\ W_j\le X を満たすすべての jj について Aj<AiA_j\lt A_i が成り立つような ii の個数である。

各 ii について、j<ij\lt i かつ Aj≥AiA_j\ge A_i を満たす jj のうち、WjW_j の最小値を TiT_i とする。そのような jj が存在しない場合は Ti=N+1T_i=N+1 とする。

このとき、クエリ XX の答えは Wi≤X<TiW_i\le X\lt T_i を満たす ii の個数となる。

したがって、各 ii について区間 [Wi,Ti)[W_i,T_i) に 11 を加算し、各 XX における値を累積和で求めればよい。

i=1,2,…,Ni=1,2,\ldots,N の順に、セグメント木の位置 xx で Aj=xA_j=x を満たす WjW_j の最小値を管理すれば、TiT_i は区間 [Ai,N][A_i,N] の最小値となるので、 O(Nlog⁡N+Q)O(N\log N+Q) でこの問題を解くことができる。

ユーザー解説

ユーザー解説を書く

ユーザー解説はまだありません。