题目链接

https://www.luogu.org/problemnew/show/P2261

分析

显然\(k\) \(mod\) \(i=k-\lfloor {k/i}\rfloor\) \(\times\) \(i\),于是我们只需要求\(N * k-\sum_{i=1}^N {\lfloor {k/i}\rfloor\times i}\)

这里就需要数论分块,也称作整除分块的知识

结论:

\(\forall{i} \in [x,\lfloor {k/{\lfloor {k/x}\rfloor }}\rfloor]\),\(\lfloor k/i \rfloor\)的值都相等

证明

先咕了....

于是这道题再套个等差数列求和就完了...

代码

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <cctype>
#define ll long long
#define ri register int
using std::min;
using std::max;
ll n,k,ans=0,g;
int main(){
scanf("%lld %lld",&n,&k);
ans=n*k;
for(ri i=1;i<=n;i=g+1){
g= k/i ? min(k/(k/i),n) : n;//如果i大于k的话直接一步把后面的算完
ans -= (i+g)*(g-i+1)/2 * (k/i);
// 等差数列求和 数论分块
}
printf("%lld\n",ans);
return 0;
}

最新文章

  1. Jenkins学习四:Jenkins 邮件配置
  2. SQL语句 还原未知逻辑名称数据库
  3. ffmpeg处理RTMP流媒体的命令 发送流媒体的命令(UDP,RTP,RTMP)
  4. 关于CSS3的代码总结(部分)
  5. webrtc学习——mediaStream和MediaStreamTrack
  6. AFNetworking网络请求的get和post步骤
  7. 用于展现图表的50种JavaScript库
  8. 聊天demo SignalR
  9. vuejs 相关资料
  10. Visual Studio 2017 ASP.NET Core开发
  11. 反射模拟DbUtils实现ResultSet转成Bean实例
  12. TCGA样本命名详解
  13. ejabberd之开题篇
  14. java提高(2)---正则表达式(1)常用符号
  15. Linux系统——JumpServer跳板机的搭建和部署
  16. [ IOS ] iOS-控制器View的创建和生命周期
  17. python之threading.local
  18. IOS的设计模式
  19. ubuntu使用root权限登录的设置方法
  20. redhat-2

热门文章

  1. html文字两行后,就用省略号代替剩下的
  2. 在testrpc以太坊测试环境部署智能合约
  3. Androidstudio 编译慢 这样的体验肯定很多人都有!!!
  4. [Java读书笔记] Effective Java(Third Edition) 第 4 章 类和接口
  5. mongodb download
  6. MyEclipse环境的项目改为在Eclipse中运行爬坑记【我】
  7. [Scikit-learn] 1.4 Support Vector Classification
  8. hadoop异常: java.io.EOFException: Unexpected end of input stream
  9. android 超简单的拖动按钮 悬浮按钮 吸附按钮 浮动按钮
  10. laravel 加载指定版本的mongodb