UVALive - 3521 Joseph's Problem (整除分块)
2024-09-04 16:08:39
给定$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 ;
}
最新文章
- fifo write
- java核心知识点学习----创建线程的第三种方式Callable和Future CompletionService
- C#设计模式——单件模式
- Could not publish server configuration for MyEclipse Tomcat v7.0. Multiple Contexts have a path
- java万物皆对象
- 评playerc网友的";求比指定数大且最小的“不重复数”问题";
- ios开发之UIView的frame、bounds跟center属性的区别(附图)
- Java开发之I/O读取文件实例详解
- Windows下Vundle插件BundleSearch命令出现错误解决方案
- Linux下根据进程的名字杀死进程
- 在数组中找几个数的和等于某个数[LeetCode]
- DUILIB UI创建过程
- oracle传输表空间相关
- iOS Runtime的消息转发机制
- ros新建的包找不到
- Leetcode 344.反转字符串 By Python
- Who is YaoGe.(搞笑篇)
- HDU 2102 A计划(BFS/DFS走迷宫)
- 【优化】JSON.stringify()使用优化
- ASP .Net Core系统部署到Ubuntu 16.04 具体方案
热门文章
- css样式之补充
- pip3命令报错Fatal error in launcher: Unable to create process using &#39;";d:\old_files\py3.6\python.exe"; ";E:\py3.6\Scripts\pip3.exe"; list&#39;
- PAT 天梯赛 L1-023. 输出GPLT 【水】
- typeset的常见用法
- CMA内存管理子系统
- 使用concurrent.futures和ProcessPoolExecutor来替代线程和进程
- 20145231第二周Java学习笔记
- iOS_多线程(一)
- OC_链表实现队列
- Centos6.5安装Mysql5.6.10