f(a,b,c,n)=∑ni=0⌊ai+bc⌋
f
(
a
,
b
,
c
,
n
)
=
∑
i
=
0
n
⌊
a
i
+
b
c
⌋
g(a,b,c,n)=∑ni=0i⌊ai+bc⌋
g
(
a
,
b
,
c
,
n
)
=
∑
i
=
0
n
i
⌊
a
i
+
b
c
⌋
h(a,b,c,n)=∑ni=0⌊ai+bc⌋2
h
(
a
,
b
,
c
,
n
)
=
∑
i
=
0
n
⌊
a
i
+
b
c
⌋
2
推导
对于a,b,c,n设m=⌊an+bc⌋,a′=amodc,b′=bmodc
m
=
⌊
a
n
+
b
c
⌋
,
a
′
=
a
mod
c
,
b
′
=
b
mod
c
推f
f(a,b,c,n)=∑i=0n⌊ai+bc⌋=∑i=0n⌊a′i+b′c⌋+i⌊ac⌋+⌊bc⌋=f(a′,b′,c,n)+12(n+1)n⌊ac⌋+(n+1)⌊bc⌋(1)(2)(3)
(1)
f
(
a
,
b
,
c
,
n
)
=
∑
i
=
0
n
⌊
a
i
+
b
c
⌋
(2)
=
∑
i
=
0
n
⌊
a
′
i
+
b
′
c
⌋
+
i
⌊
a
c
⌋
+
⌊
b
c
⌋
(3)
=
f
(
a
′
,
b
′
,
c
,
n
)
+
1
2
(
n
+
1
)
n
⌊
a
c
⌋
+
(
n
+
1
)
⌊
b
c
⌋
对于a<c,b<c
a
<
c
,
b
<
c
f(a,b,c,n)=∑i=0n∑j=1m[j≤⌊ai+bc⌋]=∑j=0m−1∑i=0n[⌊ai+bc⌋≥j+1]=∑j=0m−1∑i=0n[ai≥jc+c−b]=∑j=0m−1∑i=0n[ai>jc+c−b−1]=∑j=0m−1n−⌊jc+c−b−1a⌋=mn−f(c,c−b−1,a,m−1)(4)(5)(6)(7)(8)(9)
(4)
f
(
a
,
b
,
c
,
n
)
=
∑
i
=
0
n
∑
j
=
1
m
[
j
≤
⌊
a
i
+
b
c
⌋
]
(5)
=
∑
j
=
0
m
−
1
∑
i
=
0
n
[
⌊
a
i
+
b
c
⌋
≥
j
+
1
]
(6)
=
∑
j
=
0
m
−
1
∑
i
=
0
n
[
a
i
≥
j
c
+
c
−
b
]
(7)
=
∑
j
=
0
m
−
1
∑
i
=
0
n
[
a
i
>
j
c
+
c
−
b
−
1
]
(8)
=
∑
j
=
0
m
−
1
n
−
⌊
j
c
+
c
−
b
−
1
a
⌋
(9)
=
m
n
−
f
(
c
,
c
−
b
−
1
,
a
,
m
−
1
)
推g和h是类似的:
推g
g(a,b,c,n)=∑i=0ni⌊ai+bc⌋=∑i=0ni⌊a′i+b′c⌋+i2⌊ac⌋+i⌊bc⌋=g(a′,b′,c,n)+16n(n+1)(2n+1)⌊ac⌋+12(n+1)n⌊bc⌋(29)(30)(31)
(29)
g
(
a
,
b
,
c
,
n
)
=
∑
i
=
0
n
i
⌊
a
i
+
b
c
⌋
(30)
=
∑
i
=
0
n
i
⌊
a
′
i
+
b
′
c
⌋
+
i
2
⌊
a
c
⌋
+
i
⌊
b
c
⌋
(31)
=
g
(
a
′
,
b
′
,
c
,
n
)
+
1
6
n
(
n
+
1
)
(
2
n
+
1
)
⌊
a
c
⌋
+
1
2
(
n
+
1
)
n
⌊
b
c
⌋
当a<c,b<c
a
<
c
,
b
<
c
时
g(a,b,c,n)=∑i=0ni⌊ai+bc⌋=∑i=0ni∑j=1m[j≤⌊ai+bc⌋]=∑j=0m−1∑i=0ni[i>⌊jc+c−b−1a⌋]=∑j=0m−112n(n+1)−12⌊jc+c−b−1a⌋(⌊jc+c−b−1a⌋+1)(利用等差数列)=12(mn(n+1)−h(c,c−b−1,a,m−1)−f(c,c−b−1,a,m−1))(32)(33)(34)(35)(36)(37)
(32)
g
(
a
,
b
,
c
,
n
)
=
∑
i
=
0
n
i
⌊
a
i
+
b
c
⌋
(33)
=
∑
i
=
0
n
i
∑
j
=
1
m
[
j
≤
⌊
a
i
+
b
c
⌋
]
(34)
=
∑
j
=
0
m
−
1
∑
i
=
0
n
i
[
i
>
⌊
j
c
+
c
−
b
−
1
a
⌋
]
(35)
=
∑
j
=
0
m
−
1
1
2
n
(
n
+
1
)
−
1
2
⌊
j
c
+
c
−
b
−
1
a
⌋
(
⌊
j
c
+
c
−
b
−
1
a
⌋
+
1
)
(36)
(
利
用
等
差
数
列
)
(37)
=
1
2
(
m
n
(
n
+
1
)
−
h
(
c
,
c
−
b
−
1
,
a
,
m
−
1
)
−
f
(
c
,
c
−
b
−
1
,
a
,
m
−
1
)
)
推h
h(a,b,c,n)=∑i=0n⌊ai+bc⌋2=∑i=0n(⌊a′i+b′c⌋+i⌊ac⌋+⌊bc⌋)2=∑i=0n⌊a′i+b′c⌋2+i2⌊ac⌋2+⌊bc⌋2+2i⌊a′i+b′c⌋⌊ac⌋+2⌊a′i+b′c⌋⌊bc⌋+2i⌊ac⌋⌊bc⌋=h(a′,b′,c,n)+16n(n+1)(2n+1)⌊ac⌋2+(n+1)⌊bc⌋2+2⌊ac⌋g(a′,b′,c,n)+2⌊bc⌋f(a′,b′,c,n)+n(n+1)⌊ac⌋⌊bc⌋(19)(20)(21)(22)(23)
(19)
h
(
a
,
b
,
c
,
n
)
=
∑
i
=
0
n
⌊
a
i
+
b
c
⌋
2
(20)
=
∑
i
=
0
n
(
⌊
a
′
i
+
b
′
c
⌋
+
i
⌊
a
c
⌋
+
⌊
b
c
⌋
)
2
(21)
=
∑
i
=
0
n
⌊
a
′
i
+
b
′
c
⌋
2
+
i
2
⌊
a
c
⌋
2
+
⌊
b
c
⌋
2
+
2
i
⌊
a
′
i
+
b
′
c
⌋
⌊
a
c
⌋
+
2
⌊
a
′
i
+
b
′
c
⌋
⌊
b
c
⌋
+
2
i
⌊
a
c
⌋
⌊
b
c
⌋
(22)
=
h
(
a
′
,
b
′
,
c
,
n
)
+
1
6
n
(
n
+
1
)
(
2
n
+
1
)
⌊
a
c
⌋
2
+
(
n
+
1
)
⌊
b
c
⌋
2
+
2
⌊
a
c
⌋
g
(
a
′
,
b
′
,
c
,
n
)
(23)
+
2
⌊
b
c
⌋
f
(
a
′
,
b
′
,
c
,
n
)
+
n
(
n
+
1
)
⌊
a
c
⌋
⌊
b
c
⌋
当a<c,b<c
a
<
c
,
b
<
c
时
首先介绍个很有用的东西:
a2=(a+1)a−a=2(∑i=1ai)−a
a
2
=
(
a
+
1
)
a
−
a
=
2
(
∑
i
=
1
a
i
)
−
a
那么
h(a,b,c,n)=∑i=0n⌊ai+bc⌋2=∑i=0n2(∑j=1⌊ai+bc⌋j)−⌊ai+bc⌋=2(∑j=0m−1(j+1)∑i=0n[⌊ai+bc⌋>=j+1])−f(a,b,c,n)=2(∑j=0m−1j∑i=0n[i<⌊jc+c−b−1a⌋])+2(∑j=0m−1∑i=0n[i<⌊jc+c−b−1a⌋])−f(a,b,c,n)=2g(c,c−b−1,a,m−1)+2f(c,c−b−1,a,m−1)−f(a,b,c,n)(24)(25)(26)(27)(28)
(24)
h
(
a
,
b
,
c
,
n
)
=
∑
i
=
0
n
⌊
a
i
+
b
c
⌋
2
(25)
=
∑
i
=
0
n
2
(
∑
j
=
1
⌊
a
i
+
b
c
⌋
j
)
−
⌊
a
i
+
b
c
⌋
(26)
=
2
(
∑
j
=
0
m
−
1
(
j
+
1
)
∑
i
=
0
n
[
⌊
a
i
+
b
c
⌋
>=
j
+
1
]
)
−
f
(
a
,
b
,
c
,
n
)
(27)
=
2
(
∑
j
=
0
m
−
1
j
∑
i
=
0
n
[
i
<
⌊
j
c
+
c
−
b
−
1
a
⌋
]
)
+
2
(
∑
j
=
0
m
−
1
∑
i
=
0
n
[
i
<
⌊
j
c
+
c
−
b
−
1
a
⌋
]
)
−
f
(
a
,
b
,
c
,
n
)
(28)
=
2
g
(
c
,
c
−
b
−
1
,
a
,
m
−
1
)
+
2
f
(
c
,
c
−
b
−
1
,
a
,
m
−
1
)
−
f
(
a
,
b
,
c
,
n
)
递归求出a,b,c,n的f,g,h即可
时间复杂度
观察式子,发现a先模c,然后与c交换,在模,与gcd操作基本相同,时间复杂度也相同,为O(loga)
O
(
log
a
)