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