題解 P2261 CQOI2007 餘數求和

2022-06-20 06:18:13 字數 599 閱讀 5942

\(decription:\)

給出兩個數n,k,求\(\sum_^k\%i\)

\(sample\)

\(input:\)

10 5

\(sample\)

\(output:\)

這題要求餘數的和,考慮和除法有些密不可分的關係,那就化化式子

\(\sum_^ k-k/i*i\)

\(n*k-\sum_^ k/i*i\)

那麼我們考慮用除法分塊求。

每乙個塊內的和是等差數列,那麼可以快速就出乙個塊的和。

因為塊的個數不會對於根號個,所以複雜度***。

#include#define int long long

using namespace std;

int n,k,ans,l,r;

signed main()

ans+=n*k;

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

return 0;

}

P2261 CQOI2007 餘數求和

數學題,無背景 給出正整數n和k,計算g n,k k mod 1 k mod 2 k mod 3 k mod n的值,其中k mod i表示k除以i的餘數。例如g 10,5 5 mod 1 5 mod 2 5 mod 3 5 mod 4 5 mod 5 5 mod 10 0 1 2 1 0 5 5 ...

P2261 CQOI2007 餘數求和

我是題面 題意還是很清晰,很容易理解 1e9範圍明顯不能暴力,除非你能把常數優化到 frac1 但我實在想象不到用了這麼多取模怎麼把常數優化下去 我們可以把 k i 變成 k k i i 整除 那麼總的和也就從 sum k i 變成了 sum n k k i i 又可以轉化為 nk sum n k ...

P2261 CQOI2007 餘數求和

數學題,無背景 給出正整數n和k,計算g n,k k mod 1 k mod 2 k mod 3 k mod n的值,其中k mod i表示k除以i的餘數。例如g 10,5 5 mod 1 5 mod 2 5 mod 3 5 mod 4 5 mod 5 5 mod 10 0 1 2 1 0 5 5 ...