首页 > 其他分享 >Ynoi2015 我回来了

Ynoi2015 我回来了

时间:2023-09-05 16:55:11浏览次数:48  
标签:ln text Ynoi2015 sqrt mex bitset 维护 回来

介绍个最劣解 \(O(m\sqrt n+n\sqrt n+n\alpha(n)\ln n)\) 做法。

首先令 \(b_i\gets a_i-1\),区间 \([l,r]\) 的答案就是:

\[r-l+1+\sum\limits_{k=l}^r\text{mex}_{i=l}^r\left\lfloor\frac{b_i}{k}\right\rfloor \]

考虑如何动态维护后面那个式子。我们对每一个 \(k\in [1,n]\) 维护一个大小 \(n/k\) 的 bitset,代表所有 \(b_i/k\) 的值,最低位的 \(0\) 就是 \(k\) 对应的 \(\text{mex}\)。

加入一个 \(b_i\) 的时候考虑所有 \(b_i/k\) 的值,不难发现只有 \(O(\sqrt n)\) 种取值,于是可以分成 \(O(\sqrt n)\) 个区间修改,每次修改形如 \((l,r,x)\),代表往 \(l\) 到 \(r\) 每个 bitset 中插入数 \(x\)。

因为 \(n\) 个 bitset 的总大小不超过 \(n\ln n\)(调和级数),所以如果我们每次修改 \((l,r,x)\) 都能找到一个是 \(0\) 的位,把这位换成 \(1\),并不访问别的 \(1\) 的话,这个复杂度就是正确的。于是不难想到对每个 \(x\) 维护一个并查集,这样就可以从一个位置 \(p\in[l,r]\) 迅速跳到下一个第 \(x\) 位为 \(0\) 的 \(p'\) 了。

然后我们在跳 \(p\) 的时候需要动态维护 \(p\) 的 bitset 的 \(\text{mex}\),由于只有插入没有删除,这显然可以均摊 \(O(n\ln n)\) 维护。得到这个 \(p\) 的权值后,就只需要一个单点修改 \(O(1)\) 的数据结构来维护区间和了。显然分块可以做到 \(O(1)-O(\sqrt n)\)。于是就得到了 \(O(m\sqrt n+n\sqrt n+n\alpha(n)\log n)\) 的优秀做法。

代码,自以为写得很清晰。

标签:ln,text,Ynoi2015,sqrt,mex,bitset,维护,回来
From: https://www.cnblogs.com/Ender32k/p/17680134.html

相关文章

  • ios开发之--首页 导航栏隐藏 下一级页面显示,pop回来显示白条
    解决方法,在首页中实现如下两个方法,代码如下:-(void)viewWillDisappear:(BOOL)animated{[superviewWillDisappear:animated];[self.navigationControllersetNavigationBarHidden:NOanimated:NO];}-(void)viewWillAppear:(BOOL)animated{[superviewWillAppear......
  • 【电脑配置】新电脑买回来怎么配置?
    (【电脑配置】新电脑买回来怎么配置?)前记这几天旧电脑主板又又又寄了,于是乎买个新电脑,不像四年前的自己那样懵懂,这一次对待电脑环境配置显然是带着脑子的,所以我也在这里记录一下新电脑环境配置的相关步骤,是基于个人的工作性质来确定的,因此环境配置主要包括生活类软件和技术类软件......
  • 【电脑配置】新电脑买回来怎么配置?
    目录前记1.系统激活步骤记录1.1前期流程1.2问题:PIN设置的时候卡住1.3非联网状态下的后续激活步骤1.4设置安全验证:PIN2.浏览器和联网3.office软件4.数据迁移5.编程环境搭建5.1JDK1.8安装5.2python安装5.3Node.js安装5.4MySQL安装5.4Vscode安装5.5Idea安装5.5Git安......
  • 那个即刻,他回来啦!
    阅读本文大概需要1.8分钟。废话不多说,今天告诉大家一个好消息,那个即刻回来啦。知道即刻的我就不多说了,不知道即刻的我简单解释下,即刻是近几年我觉得基于兴趣爱好,做优质信息推送最好的平台之一,我很早就混即刻,在上面关注一些优质kol或者圈子,极大丰富了我枯燥的生活。在即刻,大家彼......
  • docker rm后 映射文件还能找回来吗
    Docker删除容器后如何找回映射文件简介在使用Docker时,我们可能会遇到删除容器后需要找回映射文件的情况。本文将指导您如何通过一系列步骤来实现这一目标。首先,我们先来了解整个流程。流程图下面的流程图展示了整个过程:+-------------------+|开发环境中的文件|+--------......
  • Recovering unassigned shards on elasticsearch 2.x——副本shard可以设置replica为0
    Recoveringunassignedshardsonelasticsearch2.x摘自:https://z0z0.me/recovering-unassigned-shards-on-elasticsearch/Igotaccrosstheproblemwhendecidedtoaddanodetotheelasticsearchclusterandthatnodewasnotabletoreplicatetheindexesofthe......
  • 胡汉三又回来了。。。
    没想到隔了这么久,还是最后能回来,兴奋&紧张。一、analyzetable的作用1、analyzetable会统计索引分布信息。2、对于MyISAM表,相当于执行了一次myisamchk--analyze3、支持InnoDB、NDB、MyISAM等存储引擎,但不支持视图(view)4、执行analyzetable时,会对表加上读锁(readloc......
  • 每周总结回来啦!(11月27日起)
    上周忙着考试去了,这周一直在补上周的烂摊子,最后一门英语期中也终于考完了,后面的主旋律就是学算法学建模学英语,补笔记跟复习+写实验报告了写上大概一共要做些什么算法:Acwing蓝桥杯真题,周赛,算法课建模:学算法,以买的那本书作为目录去学英语:背单词吧,其他的暂时不知道咋安排笔记:生......
  • 谷歌搜索引擎页面变成外语,怎么调回来
    先看官方答案,这净扯这些没用的更改网页版中显示的语言-计算机-Google帐号帮助 看了一遍没看明白,也没有看到与language相关的选项后来在另一台电脑上用中文版的找到设置入口了 我就在想,为什么之前没找到这个language呢?原来是我的浏览器放大比例太大了,导致没有显示全,哈......
  • 五一回来后的心情
    周日,早起,心情很差,感觉五一回家,正经事没干啥,背单词又丢掉了,《如何阅读一本书》带回家,但是读不进去了,感觉太啰嗦,想要放弃。下班后的flag,立了,但是没执行,为什么呢?昨晚(5/6)到底干啥了?哦,工作有些情况,炒菜已经8点了,吃完饭估计九点半了吧。吃完饭干啥?看房子?躺了一会,起来洗漱睡觉计划是......