题意:
q
q
q次操作,每次给数组
A
A
A或者
B
B
B的
[
l
,
r
]
[l,r]
[l,r]位置加上一个斐波那契数列,问每次操作之后
A
B
AB
AB数组是否相同
考虑斐波那契的生成函数
f
(
x
)
=
1
+
1
x
+
2
x
2
+
.
.
.
+
f
i
b
i
−
1
x
i
+
.
.
.
=
∑
i
=
0
f
i
b
i
+
1
x
i
x
f
(
x
)
=
∑
i
=
1
f
i
b
i
x
i
,
x
2
f
(
x
)
=
∑
i
=
2
f
i
b
i
−
1
x
i
f
(
x
)
−
x
f
(
x
)
−
x
2
f
(
x
)
=
1
f
(
x
)
=
1
1
−
x
−
x
2
f(x)=1+1x+2x^2+...+fib_{i-1}x^i+...=\sum_{i=0}fib_{i+1}x^i\\ xf(x)=\sum_{i=1}fib_{i}x^i,x^2f(x)=\sum_{i=2}fib_{i-1}x^i\\ f(x)-xf(x)-x^2f(x)=1\\ f(x)=\frac 1 {1-x-x^2}
f(x)=1+1x+2x2+...+fibi−1xi+...=i=0∑fibi+1xixf(x)=i=1∑fibixi,x2f(x)=i=2∑fibi−1xif(x)−xf(x)−x2f(x)=1f(x)=1−x−x21
如果把
A
,
B
A,B
A,B看做两个多项式
A
(
x
)
=
∑
i
=
1
n
a
i
x
i
B
(
x
)
=
∑
i
=
1
n
b
i
x
i
A(x)=\sum_{i=1}^{n}a_ix^i\\ B(x)=\sum_{i=1}^{n}b_ix^i
A(x)=i=1∑naixiB(x)=i=1∑nbixi
那么在
A
A
A数组
[
l
,
r
]
[l,r]
[l,r]位置加上一个斐波那契数列就相当于
A
(
x
)
+
=
x
l
f
(
x
)
−
f
i
b
r
−
l
+
2
x
r
f
(
x
)
−
f
i
b
r
−
l
+
1
x
r
+
1
f
(
x
)
⟺
A
(
x
)
+
=
x
l
1
1
−
x
−
x
2
−
f
i
b
r
−
l
+
2
x
r
1
1
−
x
−
x
2
−
f
i
b
r
−
l
+
1
x
r
+
1
1
1
−
x
−
x
2
A(x)+=x^lf(x)-fib_{r-l+2}x^rf(x)-fib_{r-l+1}x^{r+1}f(x)\\ \iff A(x)+=x^l\frac 1 {1-x-x^2}-fib_{r-l+2}x^r\frac 1 {1-x-x^2}-fib_{r-l+1}x^{r+1}\frac 1 {1-x-x^2}
A(x)+=xlf(x)−fibr−l+2xrf(x)−fibr−l+1xr+1f(x)⟺A(x)+=xl1−x−x21−fibr−l+2xr1−x−x21−fibr−l+1xr+11−x−x21
两边同乘
1
1
−
x
−
x
2
\frac 1 {1-x-x^2}
1−x−x21
⟺
1
1
−
x
−
x
2
A
(
x
)
+
=
x
l
−
f
i
b
r
−
l
+
2
x
r
−
f
i
b
r
−
l
+
1
x
r
+
1
\iff \frac 1 {1-x-x^2}A(x)+=x^l-fib_{r-l+2}x^r-fib_{r-l+1}x^{r+1}
⟺1−x−x21A(x)+=xl−fibr−l+2xr−fibr−l+1xr+1
每次修改复杂度就降为
O
(
1
)
O(1)
O(1)