题目

看到题解区很多人直接给出结论:答案为 \(\displaystyle \sum_{i=1}^n\lfloor{n\over i}\rfloor\) ,没给出证明,这里给出证明


【分析】

首先,我们可以知道 \(\displaystyle f(n)=\sum_{d\mid n}1\)

有的同学看不懂这个公式,我解释一下,这个公式表达:

枚举 \(n\) 的因数 \(d\),每枚举一个因数 \(d\), \(f(n)\) 加 \(1\)

\(d\mid n\) 指 \(d\) 是 \(n\) 的因数

这样一来,我们就可以和题目的对应上了: \(f(n)\) 代表 \(n\) 的因数个数


\(\displaystyle f(n)=\sum_{d\mid n}1\) 还有一种表达方式是 \(\displaystyle f(n)=\sum_{d=1}^n[d\mid n]\)

后面那个鬼东西 \([d\mid n]\) 是一个判断正误的函数,正确为 \(1\) ,错误为 \(0\)

这个应该理解起来也不难:

枚举每一个数 \(d\) ,当 \(d\) 是 \(n\) 的因数时, \(f(n)\) 加 \(1\)


题目要求的 \(\displaystyle M=\sum_{i=1}^n f(i)\)

我们代入上面的定义式:

\(\quad \displaystyle M\)

\(\displaystyle=\sum_{i=1}^n\sum_{d\mid i}1\)

\(\displaystyle=\sum_{i=1}^n\sum_{d=1}^i[d\mid i]\)

我们调换一下枚举的顺序,把 \(d\) 的枚举提前。

相当于考虑 \(d=1\) 时,对 \(i=1,2,3\dots n\) 的贡献; \(d=2\) 时对 \(i=1,2,3\dots n\) 的贡献; \(\dots\) ;\(d=n\) 时对 \(i=1,2,3\dots n\) 的贡献

\(\displaystyle=\sum_{d=1}^n\sum_{i=1}^n[d\mid i]\)

对于一个固定的 \(d\) ,\(\displaystyle\sum_{i=1}^n[d\mid i]\) 的意义非常直观:

\(1\)~\(n\) 中,有多少个数以 \(d\) 为因数,即多少个数是 \(d\) 的倍数

应该是 \(\lfloor{n\over d}\rfloor\) 吧

所以我们得到 \(\displaystyle M=\sum_{d=1}^n\lfloor{n\over d}\rfloor\)


【代码】

那本蒟蒻就放 我码风极丑的 代码了:

C++ 版:

#include<iostream>
using namespace std;
int main(){
int n,ans=0;
cin>>n;
for(int i=1;i<=n;i++) ans+=n/i;
cout<<ans;
}

Python 3 版:

ans=0
n=int(input())
for i in range(1,n+1):
ans+=n//i
print(ans)

最后安利一下本蒟蒻的博客

题解 P1403 【[AHOI2005]约数研究】的更多相关文章

  1. 洛谷——P1403 [AHOI2005]约数研究

    P1403 [AHOI2005]约数研究 题目描述 科学家们在Samuel星球上的探险得到了丰富的能源储备,这使得空间站中大型计算机“Samuel II”的长时间运算成为了可能.由于在去年一年的辛苦工 ...

  2. 洛谷P1403 [AHOI2005] 约数研究 [数论分块]

    题目传送门 约数研究 题目描述 科学家们在Samuel星球上的探险得到了丰富的能源储备,这使得空间站中大型计算机“Samuel II”的长时间运算成为了可能.由于在去年一年的辛苦工作取得了不错的成绩, ...

  3. P1403 [AHOI2005]约数研究 题解

    转载luogu某位神犇的题解QAQ 这题重点在于一个公式: f(i)=n/i 至于公式是怎么推出来的,看我解释: 1-n的因子个数,可以看成共含有2因子的数的个数+含有3因子的数的个数……+含有n因子 ...

  4. P1403 [AHOI2005]约数研究

    原题链接 https://www.luogu.org/problemnew/show/P1403 这个好难啊,求约数和一般的套路就是求1--n所有的约数再一一求和,求约数又要用for循环来判断.... ...

  5. 洛谷 P1403 [AHOI2005]约数研究

    怎么会有这么水的省选题 一定是个签到题. 好歹它也是个省选题,独立做出要纪念一下 很容易发现在1~n中,i的因子数是n / i 那就枚举每一个i然后加起来就OK了 #include<cstdio ...

  6. BZOJ 1968_P1403 [AHOI2005]约数研究--p2260bzoj2956-模积和∑----信息学中的数论分块

    第一部分 P1403 [AHOI2005]约数研究 题目描述 科学家们在Samuel星球上的探险得到了丰富的能源储备,这使得空间站中大型计算机“Samuel II”的长时间运算成为了可能.由于在去年一 ...

  7. [AHOI2005]约数研究

    题目描述 科学家们在Samuel星球上的探险得到了丰富的能源储备,这使得空间站中大型计算机“Samuel II”的长时间运算成为了可能.由于在去年一年的辛苦工作取得了不错的成绩,小联被允许用“Samu ...

  8. 【洛谷P1403】约数研究

    题目大意:求\[\sum\limits_{i=1}^n\sum\limits_{d|i}1\] 题解:交换求和顺序即可. \[\sum\limits_{i=1}^n\sum\limits_{d|i}1 ...

  9. BZOJ1968 [Ahoi2005] 约数研究

    Description Input 只有一行一个整数 N(0 < N < 1000000). Output 只有一行输出,为整数M,即f(1)到f(N)的累加和. Sample Input ...

随机推荐

  1. Netty简单认识

    简介 Netty 是由JBOSS提供的一个 Java开源框架, 现在是 Github上的开源项目 Netty 是一个异步的.基于事件驱动的网络应用框架式, 用以快速开发高性能.高可靠性的网路IO程序 ...

  2. 《YouTube 网站的架构演进》阅读笔记

    概述 YouTube 在国内是个404网站,需要翻墙得见,这是有用的废话,先铺垫一下. 从全球网站来看,它仅次于母公司 Google,全球排名位列第2.每天超过5亿以上视频播放量,平均每个用户点击10 ...

  3. 关于torchvision.models中VGG的笔记

    VGG 主要有两种结构,分别是 VGG16 和 VGG19,两者并没有本质上的区别,只是网络深度不一样. 对于给定的感受野,采用堆积的小卷积核是优于采用大的卷积核的,因为多层非线性层可以增加网络深度来 ...

  4. Yarn的资源调优

    一.概述 每个job提交到yarn上执行时,都会分配Container容器去运行,而这个容器需要资源才能运行,这个资源就是Cpu和内存. 1.CPU资源调度 目前的CPU被Yarn划分为虚拟CPU,这 ...

  5. 九九乘法表的四种三角形排布方式(for循环以及while循环的互换)

    #region //右上 for (int i = 1; i <= 9; i++){ for (int j = 1; j <= 9; j++){ if (i > j){ Consol ...

  6. Linux: 桥接 NET HOST-only

    桥接 虚拟机会利用真实的网卡和真实计算机之间通信  还能和同一局域网之间的计算机之间通信 缺点:会耗费一个ip地址 NET:虚拟机会通过VMnet8 虚拟的网卡与真实计算机之间通信    如果真实计可 ...

  7. 逆战:微信小程序

                                                            微信小程序的生命周期 onLaunch: function(options) { // ...

  8. 将visual sdudio+Qt5.12 制作的程序打包成单个exe

    在GitHub上下载了个qt程序,由于C++不太会,经过安装qt.修改编码等一系列操作终于可以运行了. 生成的exe在运行时依赖很多dll或者图片文件,直接拷贝到其他电脑上无法运行,可以将依赖的dll ...

  9. 对plotTree的解释

    1.>>>a = 1/2/2   >>>a >>>0.25 2.def plotMidText(cntrPt,parentPt,txtString ...

  10. hdu 1950 Bridging signals 求最长子序列 ( 二分模板 )

    Bridging signals Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...