5814 餘數之和(整數分塊)

2022-07-19 07:30:12 字數 683 閱讀 5698

描述

給出正整數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 ,k<=10^9

輸出

輸出僅一行,即j(n, k)。

樣例輸入

樣例輸出

解題思路:    整數分塊最後那個數為j=k/(k/i)       f(n,k)=σ(k-i*k/i) (i=1~n);   等差求和

1 #include 2

using

namespace

std;

3 typedef long

long

ll;4

ll n,k;

5ll cal()

11return

res;12}

13int

main()

view code

餘數之和 數論分塊

傳送門 給出正整數n和k,計算j n,k k mod 1 k mod 2 k mod 3 k mod n的值。例如j 5,3 3 mod 1 3 mod 2 3 mod 3 3 mod 4 3 mod 5 0 1 0 3 3 7。第一印象肯定是暴力了,但是本題目的資料量太大了,暴力會tle,因此需要...

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 ...

51nod1225 餘數之和(分塊)

1.0 秒 131,072.0 kb 80 分 5級題 f n n 1 n 2 n 3 n n 其中 表示mod,也就是餘數。例如f 6 6 1 6 2 6 3 6 4 6 5 6 6 0 0 0 2 1 0 3。給出n,計算f n 由於結果很大,輸出mod 1000000007的結果即可。輸入輸入...