给定$n,k$$(1\leqslant n,k\leqslant 10^9)$,计算$\sum\limits _{i=1}^nk\: mod\:i$

通过观察易发现$k\%i=k-\left \lfloor \frac{k}{i} \right \rfloor*i$,因此我们考虑把$\left \lfloor \frac{k}{i} \right \rfloor$的值相同的$i$分成一组直接求和,复杂度为$O(\sqrt{n})$。

整除分块原理(选自某dalao博客)

 #include<bits/stdc++.h>

 using namespace std;
typedef long long ll;
ll n,k; int main() {
while(scanf("%lld%lld",&n,&k)==) {
ll ans=;
for(ll l=,r; l<=n; l=r+) {
ll t=k/l;
r=t&&k/t<n?k/t:n;
ans+=k*(r-l+)-t*((l+r)*(r-l+)/);
}
printf("%lld\n",ans);
}
return ;
}

最新文章

  1. fifo write
  2. java核心知识点学习----创建线程的第三种方式Callable和Future CompletionService
  3. C#设计模式——单件模式
  4. Could not publish server configuration for MyEclipse Tomcat v7.0. Multiple Contexts have a path
  5. java万物皆对象
  6. 评playerc网友的&quot;求比指定数大且最小的“不重复数”问题&quot;
  7. ios开发之UIView的frame、bounds跟center属性的区别(附图)
  8. Java开发之I/O读取文件实例详解
  9. Windows下Vundle插件BundleSearch命令出现错误解决方案
  10. Linux下根据进程的名字杀死进程
  11. 在数组中找几个数的和等于某个数[LeetCode]
  12. DUILIB UI创建过程
  13. oracle传输表空间相关
  14. iOS Runtime的消息转发机制
  15. ros新建的包找不到
  16. Leetcode 344.反转字符串 By Python
  17. Who is YaoGe.(搞笑篇)
  18. HDU 2102 A计划(BFS/DFS走迷宫)
  19. 【优化】JSON.stringify()使用优化
  20. ASP .Net Core系统部署到Ubuntu 16.04 具体方案

热门文章

  1. css样式之补充
  2. pip3命令报错Fatal error in launcher: Unable to create process using &#39;&quot;d:\old_files\py3.6\python.exe&quot; &quot;E:\py3.6\Scripts\pip3.exe&quot; list&#39;
  3. PAT 天梯赛 L1-023. 输出GPLT 【水】
  4. typeset的常见用法
  5. CMA内存管理子系统
  6. 使用concurrent.futures和ProcessPoolExecutor来替代线程和进程
  7. 20145231第二周Java学习笔记
  8. iOS_多线程(一)
  9. OC_链表实现队列
  10. Centos6.5安装Mysql5.6.10