http://codevs.cn/problem/2606/

https://luogu.lohu.info/problem/show?pid=2424

题目背景

Smart最近沉迷于对约数的研究中。

题目描述

对于一个数X,函数f(X)表示X所有约数的和。例如:f(6)=1+2+3+6=12。对于一个X,Smart可以很快的算出f(X)。现在的问题是,给定两个正整数X,Y(X<Y),Smart希望尽快地算出f(X)+f(X+1)+……+f(Y)的值,你能帮助Smart算出这个值吗?

输入输出格式

输入格式:

输入文件仅一行,两个正整数X和Y(X<Y),表示需要计算f(X)+f(X+1)+……+f(Y)。

输出格式:

输出只有一行,为f(X)+f(X+1)+……+f(Y)的值。

输入输出样例

输入样例#1:

2 4
输出样例#1:

14
输入样例#2:

123 321
输出样例#2:

72543

说明

对于20%的数据有1≤X<Y≤105。

对于60%的数据有1≤X<Y≤1*107。

对于100%的数据有1≤X<Y≤2*109。

记住一点:求[l,r],先想想前缀和[1,r]-[1,l-1]

一开始想到的:

60分TLE

[1,n]数i的出现次数为n/i

就这个还是想了好久,写出来才发现的

智商啊!!!!!

1=1

2=1+2

3=1+    3

4=1+2+    4

5=1+           5

6=1+2+3+      6

#include<cstdio>
using namespace std;
int x,y;
long long ans;
int main()
{
scanf("%d%d",&x,&y);
for(int i=;i<=x-;i++) ans-=i*((x-)/i);
for(int i=;i<=y;i++) ans+=i*(y/i);
printf("%lld",ans);
}

AC做法:

除法分块

以12为例:

i               1    2    3   4  5  6  7  8  9  10  11  12

出现次数    12   6   4   3  2  2   1  1  1  1    1    1

可以发现数i在[1,n]中的出现次数相同的数是挨在一块的

由于挨着,所以它又是一个等差数列

所以可以出现次数相同的作为一块一起算

设每一块所在区间为[L,R]

可以枚举L,那么R=n/(n/L)

(不要问怎么想出来的,学长说脑子,O| ̄|_  ,需要扶助的智商啊啊啊啊o(≧口≦)o)

所以这一块的ans=每个数的出现次数(n/L)*这一块所包含的的的数的总和

其中这一块所包含的数的总和,用等差数列求和公式 (a1+an)*n/2,可得

=(L+R)*(R-L+1)/2

#include<cstdio>
using namespace std;
long long x,y;
long long work(long long n)
{
long long ans=,i=,j;
while(i<=n)
{
j=n/(n/i);
ans+=(n/i)*(i+j)*(j-i+)/;
i=j+;
}
return ans;
}
int main()
{
scanf("%lld%lld",&x,&y);
printf("%lld",work(y)-work(x-));
}

注意要用long long,因为ans+=后面那一串可能会爆int,70分

于是我就改成了ans+=1ll*(1ll*n/1ll*i)*(1ll*i+1ll*j)*(1ll*j-1ll*i+1)/2;

然后就0了,原因未知。。。

洛谷P2424/codevs 2606 约数和的更多相关文章

  1. 洛谷 P4902 乘积 (约数筛,前缀和(积))

    洛谷P4902乘积 题意简述: 给 $ t $ 组 $ (a,b) $ 求: $ \prod_{i=A}^{B}\prod_{j=1}^{i}(\frac{i}{j})^{\lfloor \frac{ ...

  2. 洛谷 - P2424 - 约数和 - 整除分块

    https://www.luogu.org/problemnew/show/P2424 记 \(\sigma(n)\) 为n的所有约数之和,例如 \(\sigma(6)=1+2+3+6=12\) . ...

  3. 洛谷 P2424 约数和

    题目背景 Smart最近沉迷于对约数的研究中. 题目描述 对于一个数X,函数f(X)表示X所有约数的和.例如:f(6)=1+2+3+6=12.对于一个X,Smart可以很快的算出f(X).现在的问题是 ...

  4. 洛谷—— P2424 约数和

    https://www.luogu.org/problem/show?pid=2424 题目背景 Smart最近沉迷于对约数的研究中. 题目描述 对于一个数X,函数f(X)表示X所有约数的和.例如:f ...

  5. 洛谷P2424 约数和 题解

    题目 约数和 题解 此题可以说完全就是一道数学题,不难看出这道题所求的是 \(\sum\limits_{i=x}^{y}{\sum\limits_{d|i}{d}}\) 的值. 很显然,用暴力枚举肯定 ...

  6. codevs 2606 约数和问题

    题目描述 Description Smart最近沉迷于对约数的研究中. 对于一个数X,函数f(X)表示X所有约数的和.例如:f(6)=1+2+3+6=12.对于一个X,Smart可以很快的算出f(X) ...

  7. 洛谷 1016 / codevs 1046 旅行家的预算

    https://www.luogu.org/problem/show?pid=1016 http://codevs.cn/problem/1046/ 题目描述 Description 一个旅行家想驾驶 ...

  8. 洛谷 P3327 【[SDOI2015]约数个数和】

    前置芝士 关于这个题,你必须知道一个这样奇奇怪怪的式子啊QAQ \[d(i*j)= \sum_{x|i} \sum_{y|j}[gcd(x,y)=1] \] 留坑,先感性理解:后面那个gcd是为了去重 ...

  9. codevs 2606 约数和问题 (数学+分块)

    题目描述 Description Smart最近沉迷于对约数的研究中. 对于一个数X,函数f(X)表示X所有约数的和.例如:f(6)=1+2+3+6=12.对于一个X,Smart可以很快的算出f(X) ...

随机推荐

  1. C++自学笔记(3)

    类和对象 对象 具体指代一个事物 类 为了便于管理,将信息抽象. 目的不同,抽象的信息也不同(选择性暴露),也就是封装. 通过访问限定符,选择想要暴露和隐藏的信息. 对象实例化 计算机根据一个类的设计 ...

  2. HDU 3811 Permutation 状压dp

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3811 Permutation Time Limit: 6000/3000 MS (Java/Othe ...

  3. SpringMVC(二)-- springmvc的系统学习之跳转结果的方式

    资源: 尚学堂   邹波  springmvc框架视频 若无特别注明,例子项目的配置方式为注解 一.设置ModelAndView对象. 1.根据View的名称和视图解析器跳转到指定的页面. 2.跳转的 ...

  4. iOS 怎么自定制推送声音呢?(APP运行时和APP进入后台时)

    说明: 一般如果修改了apple官方的推送声音后,则APP进入后台后,推送会播放开发者自定制的推送声音,而用户在使用APP(也就是APP运行时)的时候,一般是不会有推送声音,因为此时的推送内容已经呈现 ...

  5. 如何在Sql Server 2000中用一条语句实现树的查询

    以公司的网站栏目表为例,表结构(表名:Subject)如下:   字段名称 字段类型 字段长度 id int 4 NAME varchar 200 PARENTID int 4 CODE varcha ...

  6. Dcoker中启动mysql,并实现root远程访问

    mysql容器的运行 下载mysql 5.7.19的镜像 docker pull mysql:5.7.19 运行mysql容器,端口映射为 10036 docker run --name mysql5 ...

  7. todomvc-app

    1.HTML <!doctype html> <html lang="en"> <head> <meta charset="ut ...

  8. HDU4240_Route Redundancy

    题目很简单.给一个有向图,求两点间的最大流量与任意一条路中的最大流量的比值. 最大流不说了,求出单条流量最大的路径可以用类似Spfa的方法来搞,保存到达当前点的最大流量,一直往下更新即可. 召唤代码君 ...

  9. poj 2185

    http://poj.org/problem?id=2185 题意:求最小的模式块,使其无限扩展后包含给你的矩阵块(看别人题解才懂的题意): 分析:假设存在一个模式块可以满足上述条件,那么必然存在一个 ...

  10. mysql测试索引在表中的作用

    //未完成 参考书:(完成对缓存中执行计划的查看对比 P133~) Microsoft SQL Server 2008技术内幕:T-SQL查询 实验内容 单表中的索引使用 1.建表 create ta ...