首页 > TAG信息列表 > P2261

P2261 [CQOI2007]余数求和

P2261 [CQOI2007]余数求和 分析 求的式子为\(ans = \sum_{i=1}^{n} k\%i\),我们首先需要知道的是\(a\%b=a-b*\left \lfloor \frac{a}{b} \right \rfloor\),则式子就变成了。 \[ans = n*k -\sum_{i=1}^{n}i*\left \lfloor \frac{k}{i} \right \rfloor \]然后\(\left \lfloor \frac{k}

luogu P2261 [CQOI2007]余数求和 (数论分块)

这题要推一下式子,注意涉及到取模的式子都要尽量展成减去下取整的形式。     注意,这里求和符号是求到n,因此分块里面 l 的范围就是l<=n,然后对于n大于k的情况需要特判一下。 1 #include "bits/stdc++.h" 2 using namespace std; 3 typedef long long LL; 4 LL n,k; 5 int m

洛谷P2261 [CQOI2007]余数求和(数论分块)

题目描述 给出正整数 n和 k,请计算 \(G(n, k) = \Sigma_{i = 1}^{n}k\ mod \ i\) 其中 k   mod i表示 k除以 i的余数。 输入格式 输入只有一行两个整数,分别表示 n和 k。 输出格式 输出一行一个整数表示答案。 输入输出样例 输入 #1复制 10 5 输出 #1复制 29 \(k\ mod\ i\)相当

「题解」洛谷 P2261 [CQOI2007]余数求和

题目 P2261 [CQOI2007]余数求和 简化题意 求 \(G(n,k) = \sum\limits_{i = 1}^{n} k\mod i\) 思路 整除分块。 \[\begin{aligned} G(n,k) &= \sum\limits_{i = 1}^{n} k\mod i \\ &= \sum_{i = 1} ^ {n} k - \left\lfloor\dfrac{k}{i}\right\rfloor \times i \\ &a

[洛谷P2261]余数求和[除法分块]

洛谷P2261 来讲一下下我对除法分块的理解 我看了一堆大佬的博客才搞懂啊 除法分块适用于给定n,k求型如 \[ \sum_{i=1}^{n}\frac{k}{i} \] 的式子 可将\(O(n)\)的复杂度降至\(O(\sqrt n)\) 首先定义\(l=1,r\) 其次有 \[r=min(n,\left \lfloor \frac {k}{\left \lfloor \frac{k}{l}

洛谷 - P2261 - 余数求和

https://www.luogu.org/problemnew/show/P2261 看了一下题解,取模运算可以换成减法来做。 $a\%b=a-b*\lfloor\frac{a}{b}\rfloor$ ,所以求和式可以化简,然后用数论分块来搞。 #include<bits/stdc++.h>using namespace std;#define ll long longint main() { ll n,k; scanf("%ll

【洛谷P2261】余数求和

题目大意:给定 n, k,求\(\sum\limits_{i=1}^n k\%n\) 的值。 题解:除法分块思想的应用。 \(x\%y=x-y\lfloor {x\over y}\rfloor\),因此只需快速求出 \(\sum\limits_{i=1}^n {k\over i}\) 即可。 引理:\(i\in [1,k], {k\over i}\) 最多只有不超过 \(2\sqrt k\) 个不同的值。(分情况讨论即

p2261 [CQOI2007]余数求和

传送门 分析 https://zzlzk.blog.luogu.org/solution-p2261 代码 #include<iostream> #include<cstdio> #include<cstring> #include<string> #include<algorithm> #include<cctype> #include<cmath> #include<cstdlib> #include&l