luogu2261余数求和题解--整除分块
题目链接
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;
}
luogu2261余数求和题解--整除分块的更多相关文章
- P2261 [CQOI2007]余数求和 【整除分块】
一.题面 P2261 [CQOI2007]余数求和 二.分析 参考文章:click here 对于整除分块,最重要的是弄清楚怎样求的分得的每个块的范围. 假设$ n = 10 ,k = 5 $ $$ ...
- 2018.07.17 CQOI2017 余数求和(整除分块)
洛谷传送门 bzoj传送门 这道题要用到学习莫比乌斯反演时掌握的整除分块算法,也就是对于一个数n" role="presentation" style="pos ...
- LiberOJ #124. 除数函数求和 【整除分块】
一.题目 #124. 除数函数求和 二.分析 比较好的一题,首先我们要对题目和样例进行分析,明白题目的意思. 由于对于每一个$d$,它所能整除的数其实都是定的,且数量是$ \lfloor \frac{ ...
- P2261 [CQOI2007]余数求和[整除分块]
题目大意 给出正整数 n 和 k 计算 \(G(n, k)=k\ \bmod\ 1 + k\ \bmod\ 2 + k\ \bmod\ 3 + \cdots + k\ \bmod\ n\) 的值 其中 ...
- Wannafly Camp 2020 Day 1C 染色图 - 组合数学,整除分块
定义一张无向图 G=⟨V,E⟩ 是 k 可染色的当且仅当存在函数 f:V↦{1,2,⋯,k} 满足对于 G 中的任何一条边 (u,v),都有 f(u)≠f(v). 定义函数 g(n,k) 的值为所有包 ...
- 整除分块学习笔记+[CQOI2007]余数求和(洛谷P2261,BZOJ1257)
上模板题例题: [CQOI2007]余数求和 洛谷 BZOJ 题目大意:求 $\sum^n_{i=1}k\ mod\ i$ 的值. 等等……这题就学了三天C++的都会吧? $1\leq n,k\leq ...
- 洛谷 P2261 [CQOI2007]余数求和 ||整除(数论)分块
参考:题解 令f(i)=k%i,[p]表示不大于p的最大整数f(i)=k%i=k-[k/i]*i令q=[k/i]f(i)=k-qi如果k/(i+1)=k/i=qf(i+1)=k-q(i+1)=k-qi ...
- [CQOI2007] 余数求和 - 整除分块
\(\sum_{i=1}^n\;k\;mod\;i\) Solution \(\sum_{i=1}^n\;k\;mod\;i\\=\sum_{i=1}^n(k-i\lfloor{\frac{k}{i} ...
- 洛谷P2261 [CQOI2007] 余数求和 [数论分块]
题目传送门 余数求和 题目背景 数学题,无背景 题目描述 给出正整数n和k,计算G(n, k)=k mod 1 + k mod 2 + k mod 3 + … + k mod n的值,其中k mod ...
随机推荐
- 以太坊联盟链 parity 节点搭建
https://www.cnblogs.com/sumingk/articles/9097996.html 上一篇文章介绍了以太坊私有链 geth节点的搭建,本篇介绍下企业级应用 联盟链搭建,运用pa ...
- SQL-W3School-基础:SQL SELECT 语句
ylbtech-SQL-W3School-基础:SQL SELECT 语句 1.返回顶部 1. 本章讲解 SELECT 和 SELECT * 语句. SQL SELECT 语句 SELECT 语句用于 ...
- fidder修改参数
进入截栏模式 inspectors,webfroms run
- String字符串的截取
根据某个字段将字符串分割成绩部分 String str = "string number one 1/9/0"; //将字符串由/ 截取成绩部分 String[] strs = s ...
- 删除badi及badi interface
转自:https://blog.csdn.net/zeewjj/article/details/7963147 Use Function Module OO_INTERFACE_DELETE and ...
- ldap客户端工具ldap admin tool
官网下载:非免费软件,自己破解 http://www.ldapbrowsermac.com/
- Spark源码资料汇总
近几月,想要了解Spark的内部实现原理,因此想要查阅Spark的源码信息,现将所了解的资料汇总如下: 1. 博客文字类 (1) 官网 1) github 2) Spark官网 (2) gitbook ...
- localstack环境搭建
前置 Python Docker Desktop 安装 1.使用pip安装aws-cli,则可以在cmd中使用aws命令: $pip install awscli 2.从dockerhub拉取kine ...
- 2、PHP变量
2.1含义与定义形式 就是使用一个“标记符号”(标识符),来代表某个数据. 类比: 用一个名字(姓名),来代表某个人. 用一个身份证号码,来代表某个人... 用一个变量,就可以理解为“使用一个数据”. ...
- redis安装-备份-恢复
1.安装参考:https://www.jb51.net/article/146744.htm 2.安装ruby2.3.3 .gpg2 --keyserver hkp://keys.gnupg.net ...