P2261 [CQOI2007]余数求和】的更多相关文章

P2261 [CQOI2007]余数求和 题意: 求\(G(n,k)=\sum_{i=1}^n k \ mod \ i\) 数据范围: \(1 \le n,k \le 10^9\) \(G(n,k)\) \(=\sum_{i=1}^n k-i*\lfloor \frac{k}{i} \rfloor\) \(=n*k-\sum_{i=1}^n i*\lfloor \frac{k}{i} \rfloor\) 显然,\(\lfloor \frac{k}{i} \rfloor\)的分布可能会有重复. 根…
P2261 [CQOI2007]余数求和 关键在于化简公式,题目所求$\sum_{i=1}^{n}k\mod i$ 简化式子,也就是$\sum_{i=1}^{n}(k-\frac{k}{i}\times k)$ $=n*k-\sum_{i=1}^{n}\frac{k}{i}\times k$ $⌊ \frac{m}{k}⌋$ 共有 $O( √ m)$ 种取值,直接计算.总时间复杂度 $O( √ m)$ 观察下图: 你会发现$\frac{k}{i}$是有规律的,或者说相同的紧挨着,分布在同一个块中…
题面 传送门:https://www.luogu.org/problemnew/show/P2261 Solution 这题显然有一个O(n)的直接计算法,60分到手. 接下来我们就可以拿出草稿纸推一推式子了 首先,取模运算在这里很不和谐,我们得转换一下. 对于任意取模计算,我们都有: 所以,我们可以做以下推算 经过一些手算,我们发现k/i(向下取整)是由一段一段的区间组成的,如下图 显然,每段区间的右端点可以通过二分的方法来找 对于每一段区间,我们可以把k/i提出来,括号里面就变成了(i+(i…
一.题面 P2261 [CQOI2007]余数求和 二.分析 参考文章:click here 对于整除分块,最重要的是弄清楚怎样求的分得的每个块的范围. 假设$ n = 10 ,k = 5 $ $$   i : 1 \  2 \ 3 \ 4 \ 5 \ 6 \ 7 \ 8 \ 9 \ 10  \\  \lfloor \frac{k}{i} \rfloor :  5 \ 2 \ 1 \ 1 \ 1 \ 0 \ 0 \ 0 \ 0 \ 0   $$ 我们推导出假设$ L = i $,那么,对应的 $…
洛谷题目链接:[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+5+5+5=29 输入输出格式 输入格式: 两个整数n k 输出格式: 答案 输入…
题目传送门 余数求和 题目背景 数学题,无背景 题目描述 给出正整数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+5+5+5=29 输入输出格式 输入格式: 两个整数n k 输出格式: 答案 输入输出样例 输入样例#1…
题目链接:传送门 题目: 题目背景 数学题,无背景 题目描述 给出正整数n和k,计算G(n, k)=k mod + k mod + k mod + … + k mod n的值,其中k mod i表示k除以i的余数.例如G(, )= mod + mod + mod + mod + mod …… + mod =+++++++++= 输入输出格式 输入格式: 两个整数n k 输出格式: 答案 输入输出样例 输入样例#: 输出样例#: 说明 %: n,k <= %: n,k <= ^ % n,k &l…
洛谷 一看就知道是一个数学题.嘿嘿- 讲讲各种分的做法吧. 30分做法:不知道,这大概是这题的难点吧! 60分做法: 一是直接暴力,看下代码吧- #include <bits/stdc++.h> using namespace std; typedef int _int; #define int long long _int main() { int n,k,ans=0; cin>>n>>k; for (int i=1;i<=n;++i) { ans+=(k%i)…
题目大意 给出正整数 n 和 k 计算 \(G(n, k)=k\ \bmod\ 1 + k\ \bmod\ 2 + k\ \bmod\ 3 + \cdots + k\ \bmod\ n\) 的值 其中 \(k\ \bmod\ i\) 表示 k 除以 i 的余数. 解析 整除分块的一个典型例子. 整除分块解决的是形如 \[ \sum^n_{i=1} ~ \lfloor\frac{n}{i}\rfloor \] 的问题,其复杂度为\(O(\sqrt{n})\). 实际上是规律性的一类问题,打表可以发…
题面?? 点我获得题面QAQ 我这个咕儿终于在csp初赛前夕开始学习数论了! 我是绝对不会承认之前不学数学是因为去年刚开始学OI的时候就跟yyq他们学莫比乌斯反演然后自闭的 分析 对于k mod i,可以表示为$k-(k/i)*i$ 所以答案就为 $$\sum_{i=1}^n k-(k/i)i$$ $$=nk-\sum_{i=1}^n (k/i)i$$ $\sum_{i=1}^n (k/i)i$这个东西可以用整除分块优化加上高斯求和搞(说得很高级似的 剩下的就很容易了 哇卡卡卡我总算学会用数学公…