BZOJ - 1257 分块 详解
中文题面
这道题就是LightOJ某题的升级版
前段时间我是直接用√k前暴力后分块的处理方式,然后直接套个等差求和
这次看到了dalao的证明再次让我知道我好菜啊
在这里做下笔记,学习一下对于整除运算的分析方法
关于\([\frac{k}{i}]×i,i∈[1,n]\)的处理
令\(x∈[1,k],g(x)=[k/[k/x]],f(x)=k/x\)
有\(g(x) = [k/[f(x)]] ≥ [k/f(x)] = x\)
得到\(g(x) ≥ x\),换为底 \([k/g(x)]≤[k/x]\) ①
另一方面\([k/g(x)] = [k/[k/[k/x]]] ≥ [k/k*[k/x]] = [k/x]\) ②
由①②可知\(x∈[1,k]\)时,\([k/g(x)]=[k/x]\)
既对所有的\(i∈[x,g(x)],[k/i]=[k/x]\)
既计算的规模取决于\(i\)和\([k/i]\),
\(i≤\sqrt{k}\)时,计算规模为\(\sqrt{k}\)(可认为\(i\)逐一计算)
\(i>\sqrt{k}\)时,计算规模为\([k/i]\)的不同的值,\(max{{[k/i]}}<\sqrt{k}\),规模还是\(\sqrt{k}\)(分段计算)
这也是之前可以暴力分块的依据,实际运算的时候要注意防止越界(n)
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
ll n,k,ans,gx,l,r,w,val;
while(cin>>n>>k){
ans=n*k;
for(int x=1; x<=n; x=gx+1){
val=k/x;
if(val==0) break;
gx=min(k/(k/x),n);
l=x,r=gx;
w=r-l+1;
ans -= val*(l+r)*w/2;
}
cout<<ans<<endl;
}
return 0;
}
BZOJ - 1257 分块 详解的更多相关文章
- Bzoj 1257 [CQOI2007]余数之和 (整除分块)
Bzoj 1257 [CQOI2007]余数之和 (整除分块) 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1257 一道简单题. 题目 ...
- Spring Boot异常处理详解
在Spring MVC异常处理详解中,介绍了Spring MVC的异常处理体系,本文将讲解在此基础上Spring Boot为我们做了哪些工作.下图列出了Spring Boot中跟MVC异常处理相关的类 ...
- HTML标签----图文详解
国庆节快乐,还在加班的童鞋,良辰必有重谢! 本文主要内容 头标签 排版标签:<p> <br> <hr> <center> ...
- HTTP Header详解(转载)
HTTP Header详解 HTTP(HyperTextTransferProtocol)即超文本传输协议,目前网页传输的的通用协议.HTTP协议采用了请求/响应模型,浏览器或其他客户端发出请求,服务 ...
- 【转】HTTP协议详解
原文地址:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436.html 一.概念 协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则 ...
- HTTP头部详解
因为之后的HTTP头注入要学习这些所以就看了.觉得很不错,算是学习前的科普. <HTTP头部详解>转载自:http://www.cnblogs.com/lcamry/p/5763040.h ...
- Raid详解
Raid详解 一.什么是RAID 磁盘阵列全名是『Redundant Arrays of Inexpensive Disks, RAID 』,英翻中的意思是:容错式廉价磁盘阵列. RAID 可以透过一 ...
- http协议详解<一>
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://7826443.blog.51cto.com/7816443/1729227 写在 ...
- H.264 基础及 RTP 封包详解
转自:http://my.oschina.net/u/1431835/blog/393315 一. h264基础概念 1.NAL.Slice与frame意思及相互关系 1 frame的数据可以分为多个 ...
随机推荐
- 747. Largest Number At Least Twice of Others比所有数字都大两倍的最大数
[抄题]: In a given integer array nums, there is always exactly one largest element. Find whether the l ...
- libcurl用法
本文以向百度搜索开放平台搜索关键字所对应的推荐搜索条目为例子: url:http://m.baidu.com/su?wd=%s&action=opensearch&ie=utf-8 ( ...
- pipeline 对部分特征进行处理
http://scikit-learn.org/stable/auto_examples/preprocessing/plot_function_transformer.html#sphx-glr-a ...
- Python3 Scrapy + Selenium + 阿布云爬取拉钩网学习笔记
1 需求分析 想要一个能爬取拉钩网职位详情页的爬虫,来获取详情页内的公司名称.职位名称.薪资待遇.学历要求.岗位需求等信息.该爬虫能够通过配置搜索职位关键字和搜索城市来爬取不同城市的不同职位详情信息, ...
- eclipse——Maven插件创建java工程
目录结构如下 注意默认JDK为1.5 更改默认JDK 方式一 右键工程 选中JRE1.5 Remove 双击JRE System Library 点击Finish 更改完成 方式二 配置maven ...
- C# -- 泛型(2)
通过前面的文章我们知道“泛型”是个“形容词”,并且了解了 “泛型类” 和 “泛型数组” ,下面我们来看看泛型的其它的使用方式. 上一篇:C# -- 泛型(1) <1>.泛型方法 上一篇文章 ...
- duilib入门简明教程 -- VS环境配置(2)
会SVN和配置VS环境的请跳过此篇~ 既然是入门教程,那当然得基础点,因为搜索duilib相关资料时,发现有些小伙伴到处都是编译错误,以及路径配置错误等等,还有人不知道SVN ...
- 【EfF】 贪婪加载和延迟加载 (virtual去掉关闭延迟加载)
EntityFramework(EF)贪婪加载和延迟加载的选择和使用 贪婪加载:顾名思议就是把所有要加载的东西一 次性读取 1 using (var context = new MyDbContext ...
- 以太坊系列之十六:golang进行智能合约开发
以太坊系列之十六: 使用golang与智能合约进行交互 以太坊系列之十六: 使用golang与智能合约进行交互 此例子的目录结构 token contract 智能合约的golang wrapper ...
- Mysql初识数据库《五》初识sql语句
初识sql语句 有了mysql这个数据库软件,就可以将程序员从对数据的管理中解脱出来,专注于对程序逻辑的编写 mysql服务端软件即mysqld帮我们管理好文件夹以及文件,前提是作为使用者的我们,需要 ...