博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
整除分块思想
阅读量:4966 次
发布时间:2019-06-12

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

概述

对于求形如 \(\sum_{i=1}^{n}\lfloor\frac{n}{i}\rfloor\) 的值,就需要用到整除分块,否则当n很大时就会超时。在普通的一个一个的计算时可以发现很多\(\lfloor\frac{n}{i}\rfloor\)的值成块状分布,最终的到的规律是发现对于每一个值相同的块,它的最后一个数就是n/(n/i)

代码

for(int l=1,r;l<=n;l=r+1){    r=n/(n/l);    ans+=(r-l+1)*(n/l);}

相关练习

附AC代码:

#include
using namespace std;typedef long long LL;int T;LL n;LL H(int a){ LL ans = 0; for(LL l = 1, r; l <= a; l = r + 1) { r = a / (a / l); ans += (r - l + 1)*(n / l); } return ans;}int main(){ std::ios::sync_with_stdio(false); // freopen("in.txt", "r", stdin); // freopen("out.txt", "w", stdout); cin >> T; while(T--) { cin >> n; cout << H(n) << endl; }}

参考博客:

转载于:https://www.cnblogs.com/KeepZ/p/11355160.html

你可能感兴趣的文章
秋季学期学习总结
查看>>
SpringBoot 优化内嵌的Tomcat
查看>>
【LaTeX】E喵的LaTeX新手入门教程(1)准备篇
查看>>
highcharts曲线图
查看>>
extjs动态改变样式
查看>>
PL/SQL Developer 查询的数据有乱码或者where 字段名=字段值 查不出来数据
查看>>
宏定义
查看>>
笔记:git基本操作
查看>>
生成php所需要的APNS Service pem证书的步骤
查看>>
JavaWeb之JSON
查看>>
HOT SUMMER 每天都是不一样,积极的去感受生活 C#关闭IE相应的窗口 .
查看>>
windows平台上编译mongdb-cxx-driver
查看>>
optionMenu-普通菜单使用
查看>>
2016-2017-2点集拓扑作业[本科生上课时]讲解视频
查看>>
appium(13)- server config
查看>>
IIS负载均衡-Application Request Route详解第六篇:使用失败请求跟踪规则来诊断ARR...
查看>>
管理信息系统 第三部分 作业
查看>>
[Leetcode Week13]Search a 2D Matrix
查看>>
查看端口占用cmd命令
查看>>
2019.01.17王苛震作业
查看>>