難易度評価

難易度を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 を確認してから開いてください。

別タブで開く

Fallen Leaves

作成者 wightou

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

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

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

解説

累積和を用いて高速に解答することができます。
11 番から ii 番までのタイル上にある落ち葉の枚数の総和を SiS_i とします。
また、便宜上 S0=0S_0=0 とします。
はじめの状態での各 SiS_i の値は、Si=Si−1+AiS_i = S_{i-1}+A_i により O(N)O(N) で全て求まります。

以上の事前処理のもと、各クエリを O(1)O(1) で処理できます。

落ち葉の移動について、移動元と移動先をいずれも含まないような SS の値は変化しません。
また、移動元と移動先を両方含むような SS の値も変化しません。
よって、タイプ 11 のクエリで変化するのは SiS_i だけで、Si←Si−1S_i\gets S_{i-1} とすればよいです。
同様に、タイプ 22 のクエリで変化するのは Si−1S_{i-1} だけで、Si−1←SiS_{i-1}\gets S_i とすればよいです。

タイプ 33 のクエリは、通常の累積和の処理同様 SR−SL−1S_R-S_{L-1} を出力すればよいです。

以上により、計算量 O(N+Q)O(N+Q) で解答できます。

Fenwick 木や segment 木を用いて解答することもできる制約にしてありますが、計算量が O((N+Q)log⁡N)O((N+Q)\log N) であり、累積和解法より劣っています。

ユーザー解説

ユーザー解説を書く

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