BZOJ1257 CQOI2007 餘數之和

2022-03-29 16:43:22 字數 816 閱讀 9212

bzoj1257: [cqoi2007]餘數之和

給出正整數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)。

5 37

題目要求:$$ans=\sum_^n(k\%i)$$

首先,我們要知道乙個公式:$$a\%b=a-b\times\lfloor\frac\rfloor$$

於是:$$ans=\sum_^n(k-i\times\lfloor\frac\rfloor)$$

$$\rightarrow ans=n\times k-\sum_^n(i\times\lfloor\frac\rfloor)$$

知道懵逼鎢絲反演的應該都會算後面那個——數論分塊。

複雜度$o(\sqrt n)$。

記得特判邊界。

附**:

#include#include#includeusing namespace std;

long long n,k,ans;

inline int read()

while(c>='0'&&c<='9')

return date*w;

}void work()

printf("%lld\n",ans);

}int main()

bzoj1257 CQOI 餘數之和

題目 time limit 5 sec memory limit 162 mb submit 2383 solved 1105 submit status discuss 給出正整數n和k,計算j n,k k mod 1 k mod 2 k mod 3 k mod n的值,其中k mod i表示k除...

BZOJ1257 CQOI2007 餘數之和

給出正整數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。輸出僅一...

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