博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nyist-508(余数求和)
阅读量:4286 次
发布时间:2019-05-27

本文共 1064 字,大约阅读时间需要 3 分钟。

题目链接:

题解:这是一道数学规律题,经过打表我们可以发现商相等的情况下呈现等差数列,公差就是商,这样我们就可以缩短时间去计算;

代码:

#include
#include
#include
#include
using namespace std;typedef long long LL;int main(){ LL n,k; while(~scanf("%lld%lld",&n,&k)) { LL Dl,Dr,r,l,ans = 0; if(n >= k) { ans += (n - k) * k; for(LL i = 1; i*i <= k; i++) { l = k / i,r = k / (i+1) + 1; Dl = k % l,Dr = k % r; ans += (Dl + Dr)*(l - r + 1)/2; } for(LL i = r-1; i >= 1; i--) ans += k%i; } else { for(LL i = 1; i*i <= n; i++) { l = k / i,r = k / (i+1) + 1; if(n >= r) { l = min(l,n); Dl = k % l,Dr = k % r; ans += (Dl + Dr)*(l - r + 1)/2; } } for(LL i = r-1; i >= 1; i--) if(i <= n) ans += k%i; } printf("%lld\n",ans); }}

转载地址:http://vbsgi.baihongyu.com/

你可能感兴趣的文章
Linux下clock计时函数学习
查看>>
OpenMp多线程编程计时问题
查看>>
Linux/Unix 环境下实现精确计算程序运行的时间
查看>>
C++实现统计代码运行时间计时器的简单实例
查看>>
c++ 内联函数(一看就懂)
查看>>
比较fscanf 和getline读取文件效率
查看>>
(文件)输出不使用科学技术法
查看>>
LaTeX 算法代码排版 --latex2e范例总结
查看>>
常用泰勒展开
查看>>
vector length_error
查看>>
Shell脚本处理浮点数的运算和比较实例
查看>>
bash shell for循环1到100
查看>>
latex中长公式换行,很好的办法
查看>>
nohup命令
查看>>
make 操作技巧指南--gcc版本设置
查看>>
sort和sortrows对矩阵排序
查看>>
matlab专区--------------matlab里面如何保留小数特定位数
查看>>
Matlab 绘图坐标轴刻度设置小数位数
查看>>
Matlab 条形图绘制 以及 添加误差棒 改变条形图形状
查看>>
cmake基本用法
查看>>