题目描述
正整数 N と M 個の正整数の組 (a0,b0),…,(aM−1,bM−1) が与えられます( ai,bi は添え字が 0 から始まることに気を付けてください)。
また、以下のような非負整数列 X=(x1,…,xN) があります。
- xi は以下の手順で定まる。
- l=1,r=N,t=0 とする。
- $ m=\left\ \lfloor\ \dfrac{a_{t\ \bmod\ M}\ \times\ l\ +\ b_{t\ \bmod\ M}\ \times\ r}{a_{t\ \bmod\ M}\ +b_{t\ \bmod\ M}}\ \right\ \rfloor $ とする( ⌊ x ⌋ は x を超えない最大の整数)。m=i ならば xi=t として手順を終了する。
- l ≤ i < m ならば r=m−1、そうでなければ l=m+1 とする。 t の値を 1 増やし、2へ戻る。
i=1,2,…,Q に対し、∑j=cidi−1 ∣xj − xj+1∣ の値を求めてください。
なお、本問の制約の下、答えが 1018 以下であることが示せます。
输入格式
入力は以下の形式で標準入力から与えられる。
N M a0 b0 ⋮ aM−1 bM−1 Q c1 d1 ⋮ cQ dQ
输出格式
Q 行出力せよ。x 行目には、i=x に対する問題の答えを出力せよ。
题目大意
给定 N,M 以及 M 个二元组 (a0,b0),...,(aM−1,bM−1)。
对于任意的 i∈[1,n],有 max(biai,aibi)⩽2。
生成序列 {XN},生成方式如下:
-
首先有 l=1,r=N,t=0;
-
令 $m=\lfloor\dfrac{a_{t\bmod M}\times l+b_{t\bmod M}\times r}{a_{t\bmod M}+b_{t\bmod M}}\rfloor$,若 m=i 则令 Xi=t 并结束;
-
若 l⩽i<m,则令 r=m−1,柔则令 l=m+1,令 t←t+1 并返回第二步。
有 Q 个询问,每次给定区间 (ci,di),询问 j=ci∑di−1∣Xj−Xj+1∣。
translated by cszyf
5 1
1 1
3
1 2
2 4
3 5
1
3
2
1000000000000000 2
15 9
9 15
3
100 10000
5000 385723875
150 17095708
19792
771437738
34191100
提示
制約
- 2 ≤ N ≤ 1015
- 1 ≤ M ≤ 100
- 1 ≤ ai,bi ≤ 1000
- $ \max\ \left\ (\dfrac{a_i}{b_i},\dfrac{b_i}{a_i}\right\ )\ \leq\ 2 $
- 1 ≤ Q ≤ 104
- 1 ≤ ci < di ≤ N
- 入力はすべて整数
Sample Explanation 1
X=(1,2,0,1,2) です。例えば、x1 は以下の手順で定まります。 - l=1,r=5(=N),t=0 とする。 - $ m=3(=\left\ \lfloor\ \dfrac{1\ \times\ 1\ +\ 1\ \times\ 5}{1+1}\ \right\ \rfloor) $ とする。 - l ≤ 1 < m なので r=2(=m−1) とする。t の値を 1 増やして 1 とする。 - $ m=1(=\ \left\ \lfloor\ \dfrac{1\ \times\ 1\ +\ 1\ \times\ 2}{1+1}\ \right\ \rfloor\ ) $ とする。m=1 なので x1=1(=t) として手順を終了する。 (ci,di) への答えは、例えば (c1,d1) の場合、$ \sum_{j=c_i}^{d_i-1}\ |x_j\ -\ x_{j+1}|\ =\ |x_1-x_2|\ =\ 1 $ となります。