題意:給定n,k
n,kn,
k,問∑i=
1nkm
od
i\sum_^k\bmod i
∑i=1n
kmod
i,其中1≤n
,k≤1
09
1\leq n,k\leq 10^9
1≤n,k≤
109題解:
由:k mo
di=k
−⌊ki
⌋×
ik \bmod i = k - \lfloor \frac \rfloor \times i
kmodi=
k−⌊i
k⌋×
i得:∑i=
1nkm
odi=
n×k−
∑i=1
n⌊ki
⌋×
i\sum_^k\bmod i = n\times k - \sum_^n \lfloor \frac \rfloor\times i
∑i=1n
kmod
i=n×
k−∑i
=1n
⌊ik
⌋×i
可以知道一定有一些數i
ii的⌊ki
⌋\lfloor \frac \rfloor
⌊ik
⌋相同,這裡採用分塊思想:
同一塊數的⌊ki
⌋\lfloor \frac \rfloor
⌊ik
⌋相同,長度為min
(n,k
/(k/
i))−
i+
1min(n, k / (k / i)) - i + 1
min(n,
k/(k
/i))
−i+1
,這裡的i
ii是乙個塊的左端點,min
(n,k
/(k/
i)
)min(n, k / (k / i))
min(n,
k/(k
/i))
是乙個塊的右端點。
這裡考慮k
kk和n
nn大小關係
**:
#include
using
namespace std;
typedef
long
long ll;
const
int n =
1e5+10;
struct node
;inline ll read()
while
(isdigit
(ch)
) x = x *
10+ ch -
'0', ch =
getchar()
;return x * f;
}void
solve()
printf
("%lld\n"
, res);}
intmain()
return0;
}
BZOJ1257 餘數之和,整除分塊
給出正整數n和k,計算j n,k k mod 1 k mod 2 k mod 3 k mod n的值 其中k mod i表示k除以i的餘數。例如j 5,3 3 mod 1 3 mod 2 3 mod 3 3 mod 4 3 mod 5 0 1 0 3 3 7 輸入僅一行,包含兩個整數n,k。1 n ...
BZOJ 1257餘數之和
給出正整數n和k,計算j n,k k mod 1 k mod 2 k mod 3 k mod n的值 其中k mod i表示k除以i的餘數。例如j 5,3 3 mod 1 3 mod 2 3 mod 3 3 mod 4 3 mod 5 0 1 0 3 3 7 輸入僅一行,包含兩個整數n,k。1 n ...
bzoj 1257 餘數之和sum 數學
time limit 5 sec memory limit 162 mb submit 3081 solved 1425 submit status discuss 給出正整數n和k,計算j n,k k mod 1 k mod 2 k mod 3 k mod n的值,其中k mod i表示k除以i的...