C. Dreamoon and Sums
题解:设 (1) x = q ⋅ b + r x = q\cdot b + r \tag{1} x=q⋅b+r(1)则有
(2)
d
i
v
(
x
,
b
)
=
q
,
 
m
o
d
(
x
,
b
)
=
r
∈
[
1
,
b
−
1
]
div(x,b) = q ,\: mod(x,b) = r\in[1,b-1]\tag{2}
div(x,b)=q,mod(x,b)=r∈[1,b−1](2)
(3)
(
1
)
r
=
>
x
r
=
q
⋅
b
r
+
1
\frac{(1)}{r} => \frac{x}{r} = \frac{q\cdot b}{r} + 1 \tag{3}
r(1)=>rx=rq⋅b+1(3)
题目所求
(4)
d
i
v
(
x
,
b
)
m
o
d
(
x
,
b
)
=
>
q
r
=
k
∈
[
1
,
a
]
\frac{div(x,b)}{mod(x,b)}=>\frac{q}{r}=k\in[1,a]\tag{4}
mod(x,b)div(x,b)=>rq=k∈[1,a](4)
可得
(5)
x
=
(
3
)
⋅
r
=
(
k
⋅
b
+
1
)
⋅
r
x = (3) \cdot r = (k\cdot b+1) \cdot r\tag{5}
x=(3)⋅r=(k⋅b+1)⋅r(5)
所以
(6)
∑
x
=
∑
(
k
⋅
b
+
1
)
⋅
∑
r
\sum{x} = \sum{(k\cdot b+ 1)} \cdot\sum{r}\tag{6}
∑x=∑(k⋅b+1)⋅∑r(6)
(7)
∑
x
=
b
⋅
(
b
−
1
)
2
[
(
b
+
1
)
⋅
a
+
a
⋅
(
a
−
1
)
2
⋅
b
]
\sum{x} = \frac{b\cdot (b - 1)}{2}\left[ (b+1)\cdot a + \frac{a\cdot (a - 1)}{2}\cdot b \right]\tag{7}
∑x=2b⋅(b−1)[(b+1)⋅a+2a⋅(a−1)⋅b](7)
代码
#include<bits/stdc++.h>
typedef long long LL;
using namespace std;
const int mod = 1e9+7;
int main()
{
#ifndef ONLINE_JUDGE
freopen("input.in","r",stdin);
#endif
LL a,b;
cin>>a>>b;
LL t = ((b + 1) * a ) % mod;
LL tmp = (a * (a - 1) / 2) % mod;
tmp = tmp * b % mod;
tmp = (tmp + t) % mod;
t = (b - 1) * b / 2 % mod;
cout<<(t * tmp) % mod<<endl;
return 0;
}