CQOI2007 餘數求和 數學

2021-08-31 03:45:46 字數 548 閱讀 1501

luogu2261

本題主要是兩個重要結論:

乙個數除以1~n的所有數向下取整的結果最多只有n

\sqrt n

n​種(目前本菜雞還不會證,不過我估計不久我就會證了)

得到1性質中結果相等的一段可以這樣如**中標記的那行做(證明方法也不太嚴謹)

然後簡單轉化:kkkm

od

modmodi=

k−⌊k

i⌋×i

i=k-\lfloor \frac \rfloor \times i

i=k−⌊i

k​⌋×

i,用等差數列求和方法就可以o(n

)o(\sqrt n)

o(n​

)解出此題

#include

#include

using

namespace std;

long

long n,k,ans,r,nowv;

intmain()

cout

}

CQOI2007 餘數求和

求 ans k 1 k 2 k n 這題目應該算是數論裡比較簡單的了 求 ni 1 kmod i i 1nkm od i我們知道 a b a b a b 即 ni 1 kmod i n i 1 k i k i n k ni 1 i k i i 1nkm odi i 1 n k i k i n k i...

CQOI2007 餘數求和

題面 這道題用到了數論分塊 首先什麼是數論分塊 顧名思義就是分塊在數論上的應用 不過非常神奇的一點是你如果不會分塊但你還是可以會數論分塊的 所求為 i 1nkm od i sum k mod i i 1 n kmod i將這個式子改為 i 1nk i ki sum k i left lfloor f...

CQOI2007 餘數求和

傳送門 或許這也算是道神仙題?題目描述非常直白,我們把式子轉化一下,其實就是求n k k i i。而k i是可以使用除法分塊來做的 假設t k i,如果t 0,那麼它的末端就是n,這個很顯然,如果不等於0的話,那麼末端就是k t。之後我們就神奇的過了這道題 極短。include include in...