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