Sum of Remainders(数学题)
F - Sum of Remainders
Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u
Description
Calculate the value of the sum: n mod 1 + n mod 2 + n mod 3 + ... + n mod m. As the result can be very large, you should print the value modulo 109 + 7 (the remainder when divided by 109 + 7).
The modulo operator a mod b stands for the remainder after dividing a by b. For example 10 mod 3 = 1.
Input
The only line contains two integers n, m (1 ≤ n, m ≤ 1013) — the parameters of the sum.
Output
Print integer s — the value of the required sum modulo 109 + 7.
Sample Input
3 4
4
4 4
1
1 1
0
//给你两个数n,m,问你n % 1 + n % 2 + … + n% m为几
这个题目的思路是,和为 n * m - sum ( [ n / i ] * i ) ,[ ] 是向下取整,i 从(1--- m)
具体是:
前面的 n*m 肯定就这样了
主要是后面的 :将 [ n / i ] 相同的做一个区间,用求和公式去节省时间
i 从 1 --- sqrt (n) ;
l = n / ( i + 1 ) + 1 , r = n / i ; // 这就是一个个的区间
比如 n = 20 , m = 20
i=1 --> l=11, r=20 n / (11---20) 都是等于 1
i=2 --> l=7, r=10 n / (7---10) 都等于2
i=3 --> l=r=6
i=4 --> l=r=5
注意一些特殊情况,看注释
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std; #define ll __int64
const ll MOD=1e9+; int main()
{
ll n,m;
scanf("%I64d%I64d",&n,&m);
ll ans=(n%MOD)*(m%MOD)%MOD;
ll temp=,las=m+;//记录哪些数没被减
m=min(n,m);//n 余大于 n 的都等于 n
ll nn=(ll)sqrt(n*1.0);
for (ll i=;i<=nn;i++)
{
ll l = n/(i+)+;
ll r = n/i; r=min(r,m);//可能 r 比 m 大
if (l>r) continue; las=min(las,l); ll s1=l+r , s2 =(r-l+);//这里高斯求和有个坑,要先判断哪个数可以除2,再乘
if (s1%==) s1/=; //直接用公式也不对,会超出ll限制
else s2/=;
s1%=MOD;s2%=MOD;
s1=(s1*s2)%MOD;
s1=s1*i%MOD;
temp=(temp+s1)%MOD;
}
ans=(ans+MOD-temp)%MOD;
for (ll i=;i<las;i++) //剩下的没被减得数,将n余之为0的最大整数减去
{
temp=n/i%MOD*i%MOD;
ans=(ans+MOD-temp)%MOD;
}
printf("%I64d\n",ans); return ;
}
Sum of Remainders(数学题)的更多相关文章
- codeforces 616E Sum of Remainders (数论,找规律)
E. Sum of Remainders time limit per test 2 seconds memory limit per test 256 megabytes input standar ...
- Codeforces Educational Codeforces Round 5 E. Sum of Remainders 数学
E. Sum of Remainders 题目连接: http://www.codeforces.com/contest/616/problem/E Description The only line ...
- Codeforces 616E - Sum of Remainders
616E Sum of Remainders Calculate the value of the sum: n mod 1 + n mod 2 + n mod 3 + - + n mod m. As ...
- Codeforces 616 E Sum of Remainders
Discription Calculate the value of the sum: n mod 1 + n mod 2 + n mod 3 + ... + n mod m. As the resu ...
- Educational Codeforces Round 5 E. Sum of Remainders (思维题)
题目链接:http://codeforces.com/problemset/problem/616/E 题意很简单就不说了. 因为n % x = n - n / x * x 所以答案就等于 n * m ...
- codeforces 616E. Sum of Remainders 数学
题目链接 给两个数n, m. 求n%1+n%2+.......+n%m的值. 首先, n%i = n-n/i*i, 那么原式转化为n*m-sigma(i:1 to m)(n/i*i). 然后我们可以发 ...
- HDU-2058-The sum problem(数学题技巧型)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2058 思路: 这题的n,m都很大,很显然直接暴力,会超时,那就不能全部都找了,利用等差数列求和公式, ...
- hdu 2058 The sum problem(数学题)
一个数学问题:copy了别人的博客 #include<cstdio> #include<cstdlib> #include<cmath> int main() { ...
- 杭电ACM分类
杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze ...
随机推荐
- 什么是ISP,他的工作原理是怎样的?
ISP是Image Signal Processor的缩写,全称是影像处理器.在相机成像的整个环节中,它负责接收感光元件(Sensor)的原始信号数据,可以理解为整个相机拍照.录像的第一步处理流程,对 ...
- ISP模块之色彩增强算法--HSV空间Saturation通道调整 .
色彩增强不同于彩色图像增强,图像增强的一般处理方式为直方图均衡化等,目的是为了增强图像局部以及整体对比度.而色彩增强的目的是为了使的原有的不饱和的色彩信息变得饱和.丰富起来.对应于Photoshop里 ...
- elasticsearch升级步骤
ES从1.2.1升级到1.4.0 升级步骤,基本上是按照官网的叙述来完成的,链接是:http://www.elasticsearch.org/guide/en/elasticsearch/refere ...
- 2017.5.9 java多线程总结
参考来自:http://www.cnblogs.com/lwbqqyumidi/p/3804883.html http://blog.csdn.net/gf771115/article/details ...
- Android开发Tips(2)
欢迎Follow我的GitHub, 关注我的CSDN. 我会介绍关于Android的一些有趣的小知识点. 上一篇. 1. Dagger2的开发顺序 Module -> Component -&g ...
- eCos系统无法正确链接到在C++源文件里自己定义的cyg_user_start函数的问题和解决的方法
在C++源文件里定义cyg_user_start函数前,将其声明成C函数.就可以解决这个问题. eCos官网:http://ecos.sourceware.org eCos中文技术网:http://w ...
- Poj 4227 反正切函数的应用
Description 反正切函数可展开成无穷级数,有例如以下公式 (当中0 <= x <= 1) 公式(1) 使用反正切函数计算PI是一种经常使用的方法.比如,最简单的计算PI的方法: ...
- gzip gunzip压缩保留源文件的方法:
Linux压缩保留源文件的方法: gzip –c filename > filename.gz Linux解压缩保留源文件的方法: gunzip –c filename.gz > file ...
- Ros 中的多线程
参考文献:http://blog.csdn.net/sinat_27554409/article/details/48446611 老王说ROS http://blog.csdn.net/yake ...
- Socket协议通讯
Socket协议通讯 服务器端代码: using System; using System.Collections.Generic; using System.ComponentModel; us ...