SlideShare a Scribd company logo
E 自動MOD取り機
@takayuta1999
問題概要
 以下のコマンドを処理してください
 𝑖回目のコマンドの時、𝐴1~𝐴 𝑝の中で、𝑖 + 𝑣で割った余り
が𝑖以上の値のものをすべて、 その数より大きい最小の
𝑖 + 𝑣の倍数に置き換える
 𝐴 𝑝 の値を出力する
 𝐴1~𝐴 𝑛 すべてに𝑣を加える
 はじめ、 𝐴1~𝐴 𝑛 はすべて0
考察
 不思議なのは、コマンド1が任意の区間ではなくて、始点
が決まっている区間に対してしか行われないこと
 なんか怪しいので別の見方をしてみよう
考察
 𝑖回コマンドを行った時の各𝐴𝑗の値を𝐵𝑖,𝑗とする
 そして、次の図を眺める
𝐵0,1 𝐵0,2 … 𝐵0,𝑁
𝐵1,1 𝐵1,2 … 𝐵1,𝑁
𝐵2,1 𝐵2,2 … 𝐵2,𝑁
…
𝐵 𝑄,1 𝐵 𝑄,2 … 𝐵 𝑄,𝑁
考察
 𝑖回コマンドを行った時の各𝐴𝑗の値を𝐵𝑖,𝑗とする
 そして、次の図を眺める
𝐵0,1 𝐵0,2 … 𝐵0,𝑁
𝐵1,1 𝐵1,2 … 𝐵1,𝑁
𝐵2,1 𝐵2,2 … 𝐵2,𝑁
…
𝐵 𝑄,1 𝐵 𝑄,2 … 𝐵 𝑄,𝑁
こ
っ
ち
か
ら
更
新
し
て
み
よ
う
考察
 上のように見たときに、コマンドはどのように変化するか
を考える
 すると次頁のような問題になる
考察
 𝑋1~𝑋 𝑄が与えられ、𝑥座標が𝑋𝑖の位置に𝑇𝑖(𝑇𝑖 ≧ 𝑖)秒間
緑信号、𝑣𝑖(1 ≦ 𝑣𝑖 ≦ 10)秒間赤信号の信号を置くことを
考える。
 ただし、 𝑋1 ≦ 𝑋2 ≦ ⋯ ≦ 𝑋 𝑄
 𝐴1, 𝐴2, … , 𝐴 𝑄の順番でこれらを設置していくので、あると
ころまで設置した際、時間0で0からスタートして𝑥座標
が𝑥の場所にたどり着くのはいつか毎秒1動くとき答えよ
 というクエリに答える問題になる
考察
 この問題において、各信号の色が変わる回数というのを
考える
 これは、𝑇𝑖 + 𝑣𝑖秒して、初めて緑と赤が終わるので、𝑖回
目の信号にたどり着く時間としてありうるのが𝑋𝑖秒から
𝑋𝑖 + 𝑘=0
𝑖−1
𝑣 𝑘秒の間であることより、 1 ≦ 𝑣𝑖 ≦ 10である
ことを利用すると、この周期は高々10(𝑖 − 1)/(𝑇𝑖 + 𝑣𝑖)
回しか起こらず、𝑇𝑖 ≧ 𝑖 より、高々10回しか変わることが
ない
解法
 よって、新しい信号機が変わるたびに、各信号がいつに
なったら状態が変わるかの値をsegtreeで管理すること
により、各信号機にたどりつく時間を管理することができ
る
 これで、各クエリに対して、最も近い信号機からの距離を
足してあげることで解くことができる
 ただし、このsegtreeはやや実装が重くバグりやすい
 計算量 𝑂(10𝑄𝑙𝑜𝑔𝑄)

More Related Content

Viewers also liked (9)

Ijpc2015 b しりとり木
Ijpc2015 b しりとり木Ijpc2015 b しりとり木
Ijpc2015 b しりとり木
 
IJPC C解説
IJPC C解説IJPC C解説
IJPC C解説
 
AtCoder Regular Contest 023 解説
AtCoder Regular Contest 023 解説AtCoder Regular Contest 023 解説
AtCoder Regular Contest 023 解説
 
AtCoder Regular Contest 034 解説
AtCoder Regular Contest 034 解説AtCoder Regular Contest 034 解説
AtCoder Regular Contest 034 解説
 
30分で博士号がとれる画像処理講座
30分で博士号がとれる画像処理講座30分で博士号がとれる画像処理講座
30分で博士号がとれる画像処理講座
 
数理最適化とPython
数理最適化とPython数理最適化とPython
数理最適化とPython
 
セクシー女優で学ぶ画像分類入門
セクシー女優で学ぶ画像分類入門セクシー女優で学ぶ画像分類入門
セクシー女優で学ぶ画像分類入門
 
組合せ最適化入門:線形計画から整数計画まで
組合せ最適化入門:線形計画から整数計画まで組合せ最適化入門:線形計画から整数計画まで
組合せ最適化入門:線形計画から整数計画まで
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
 

IJPC-2 E問題解説