除法分块 luogu2261 (坑)
除法分块
除法分块 是指使用分块计算的方法求S=∑i=1n⌊ki⌋S=\sum^{n}_{i=1}{\lfloor{\frac{k}{i}}\rfloor}S=i=1∑n⌊ik⌋的值。
举个例子。当 n=20n=20n=20 时,有
| iii | 111 | 222 | 333 | 444 | 555 | 666 | 777 | 888 | 999 | 101010 | 111111 | 121212 | ……… |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ⌊20i⌋\lfloor\frac{20}{i}\rfloor⌊i20⌋ | 202020 | 101010 | 666 | 555 | 444 | 333 | 222 | 222 | 222 | 222 | 111 | 111 | ……… |
我们可以把 ∀i∈[1,n]\forall i\in[1,n]∀i∈[1,n] 分成若干块,使得每块的 ∀i\forall i∀i 除 nnn 的值向下取整后相等。
∴S=20+10+6+5+4+3+2×4+1×10\therefore S=20+10+6+5+4+3+2\times4+1\times10∴S=20+10+6+5+4+3+2×4+1×10。
题目描述 luogu2261\text{luogu2261}luogu2261
给出正整数 nnn 和 kkk 计算 G(n,k)=k  mod  1+k  mod  2+k  mod  3+⋯+k  mod  nG(n, k)=k\ \bmod\ 1 + k\ \bmod\ 2 + k\ \bmod\ 3 + \cdots + k\ \bmod\ nG(n,k)=k mod 1+k mod 2+k mod 3+⋯+k mod n的值。
输入格式
两个整数 n,kn,kn,k。
输出格式
答案。
输入样例
10 5
输出样例
29
说明
对于 30%30\%30% 的数据,有 n,k≤1000n , k \leq 1000n,k≤1000;
对于 60%60\%60% 的数据,有 n,k≤106n , k \leq 10^6n,k≤106;
对于 100%100\%100% 的数据,有 n,k≤109n , k \leq 10^9n,k≤109。
Solution 2261\text{Solution 2261}Solution 2261
根据定义,有 kmod  n=k−n×⌊kn⌋k\mod n=k-n\times\lfloor\frac{k}{n}\rfloorkmodn=k−n×⌊nk⌋
依题意得G(n,k)=∑i=1n(kmod  i)=∑i=1n(k−i×⌊ki⌋)=nk−∑i=1n(i×⌊ki⌋)\begin{aligned}
G(n,k)&=\sum_{i=1}^{n}{(k\mod i)}\\
&=\sum_{i=1}^{n}{(k-i\times\lfloor\frac{k}{i}\rfloor)}\\
&=nk-\sum_{i=1}^{n}{(i\times\lfloor\frac{k}{i}\rfloor)}
\end{aligned}G(n,k)=i=1∑n(kmodi)=i=1∑n(k−i×⌊ik⌋)=nk−i=1∑n(i×⌊ik⌋)
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
ll n,k;
int main(){
scanf("%lld%lld",&n,&k);
ll ans=n*k,r;
for(ll l=1;l<=n;l=r+1){
if(k/l) r=min(n,k/(k/l));
else r=n;
ans-=(r-l+1)*(k/l)*(l+r)/2;
}
printf("%lld",ans);
}
除法分块 luogu2261 (坑)的更多相关文章
- 杭电多校第七场 1010 Sequence(除法分块+矩阵快速幂)
Sequence Problem Description Let us define a sequence as below f1=A f2=B fn=C*fn-2+D*fn-1+[p/n] Your ...
- 【BZOJ】1257: [CQOI2007]余数之和(除法分块)
题目 传送门:QWQ 分析 大佬和我说本题是除法分块,莫比乌斯反演中也有用到. QwQ我不会莫比乌斯反演啊~ 题目让我们求 $ \sum_{i=1}^n k\mod n $ 然后根据$ a \mo ...
- P2424 约数和 && 真丶除法分块
P2424 约数和 题目背景 Smart最近沉迷于对约数的研究中. 题目描述 对于一个数X,函数f(X)表示X所有约数的和.例如:f(6)=1+2+3+6=12.对于一个X,Smart可以很快的算出f ...
- HDU-6395 多校7 Sequence(除法分块+矩阵快速幂)
Sequence Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total ...
- bzoj1257[CQOI2007]余数之和(除法分块)
1257: [CQOI2007]余数之和 Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 6117 Solved: 2949[Submit][Statu ...
- Bzoj 2301: [HAOI2011]Problem b(莫比乌斯反演+除法分块)
2301: [HAOI2011]Problem b Time Limit: 50 Sec Memory Limit: 256 MB Description 对于给出的n个询问,每次求有多少个数对(x, ...
- Bzoj 2820: YY的GCD(莫比乌斯反演+除法分块)
2820: YY的GCD Time Limit: 10 Sec Memory Limit: 512 MB Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x& ...
- AcWing 199. 余数之和 (除法分块)打卡
给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + … + k mod n的值. 例如j(5, 3)=3 mod 1 + 3 mod 2 + 3 mod ...
- HDU6395-Sequence 矩阵快速幂+除法分块 矩阵快速幂模板
目录 Catalog Solution: (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 Catalog Problem:Portal传送门 原题目描述在最下面. Solution ...
随机推荐
- 3、循环链表(java实现)
1.节点类 public class Node<T> { public T data; public Node next; } 2.实现类 public class CircularLin ...
- Eclipse中maven项目报错:org.springframework.web.filter.CharacterEncodingFilter
写了一个demo,发现在tomcat中部署完项目,启动时报错. 1,问题描述 2,解决办法 1)程序在部署完成后报错,说明是程序是编译通过的,即编译编译路径Java Build Path没问题.2)此 ...
- 自定义View入门-绘制基础(1)
### 前言 说道自定义View,我们一定会想到,自定义View的绘制流程 - 测量阶段(measure) - 布局阶段(layout) - 绘制阶段(draw) 我们看到的一些炫酷的view效果,都 ...
- 深入理解JVM内存分配策略
理解JVM内存分配策略 三大原则+担保机制 JVM分配内存机制有三大原则和担保机制 具体如下所示: 优先分配到eden区 大对象,直接进入到老年代 长期存活的对象分配到老年代 空间分配担保 对象优先在 ...
- 2019-2020-1 20199314 <Linux内核原理与分析>第二周作业
1.基础学习内容 1.1 冯诺依曼体系结构 计算机由控制器.运算器.存储器.输入设备.输出设备五部分组成. 1.1.1 冯诺依曼计算机特点 (1)采用存储程序方式,指令和数据不加区别混合存储在同一个存 ...
- Day 18 软件管理3之搭建网络仓库
搭建一个网络仓库 服务端: 10.0.0.200 1.准备软件包( 1.光盘 2.缓存 3.联网下载 4.同步 ) 2.通过p共享软件包存放的目录 3.将光盘中的软件包都拷贝至p的共享目录下 4. ...
- 1.python环境配置 - python基础入门
工欲善其事必先利其器,python学习首先要做得就是配置python环境.配置环境只需要下载Pycharm 和 Anaconda两个安装包即可,请跟上我得步伐,一步一步操作. 重要的事情说三遍: 先安 ...
- linux 设置查看文本行数
在一般模式下,即摁下esc按键下的模式: 设置行数为:set nu(此处的冒号需要带上) 取消行号为:set nonu(此处的冒号需要带上)
- __pycache__
最近在使用python写一个串口模块的时候,偶然发现运行脚本之后,在工程文件夹下面出现了这样一个文件夹__pycache__,所以就特意到网上查了一下这个文件夹是怎么回事. 我们先在源文件中添加一些内 ...
- php无限级分类实战——评论及回复功能
经常在各大论坛或新闻板块详情页面下边看到评论功能,当然不单单是直接发表评论内容那么简单,可以对别人的评论进行回复,别人又可以对你的回复再次评论或回复,如此反复,理论上可以说是没有休止,从技术角度分析很 ...