八云蓝自动机 Ⅰ

首先我们对于操作 \(1\) 转换,我们给 \(k\) 单独再开一个点 \(a_c\),这样我们就可以把操作 \(1\) 转换成操作 \(2\) 了。

对于区间问题,我们考虑使用莫队进行维护。

我们记录当前 \(a\) 的值,\(pos_i\) 表示原来第 \(i\) 个位置的数现在在哪里,\(rev_i\) 维护现在第 \(i\) 个数原来在哪里,和 \(add_i\) 现在第 \(i\) 个位置上查询了多少次。

首先我们先考虑指针 \(r\) 往右移的情况。

  1. 这个操作是交换

直接交换 \(a_x\) 和 \(a_y\),\(rev_x\) 和 \(rev_y\),\(pos_{rev_x}\) 和 \(pos_{rev_y}\)。

  1. 这个操作是查询

直接给 \(ans\) 加上 \(a_x\),然后 \(add_x\) 加 \(1\) 即可。

然后我们考虑指针 \(l\) 往左移的情况。

  1. 这个操作是交换

我们同样先交换 \(a_x\) 与 \(a_y\),\(rev_{pos_x}\) 和 \(rev_{pos_y}\) 以及 \(pos_x\) 和 \(pos_y\)。

由于这个操作会影响到后面的查询操作,所以这个操作会改变答案。所以在交换后我们需要加上 \((a_{pos_x} - a_{pos_y}) \times (add_{pos_x} - add_{pos_y})\)。

  1. 这个操作是查询

和上面一样,\(ans\) 加上 \(a_{pos_x}\),\(add_x\) 加上 \(1\)。

剩下两种类似,只需改改符号即可。时间复杂度 \(O(n\sqrt n)\)。

最后要注意本题对 \(2^{32}\) 取模。

code

转盘

我们可以先转换问题。

每个点在 \(a_i\) 时间消失,求一个最小的 \(t\) 使得在所有点都消失前访问所有点

然后我们就可以发先我们发现一直向前走一定不会比等一会在向前走更劣。

先破环成链,枚举每一个 \(i \in [n,2 \times n)\)。所以走到一个点 \(j\) 的时间即为 \(t - (i - j)\)。

所以对于所有的 \(j\) 必须满足 \(a_j \le t - (i - j)\)。即 \(\max (T_j - j) + i = t_{min}\)。

所以答案即为 \(\min_{n \le i < 2n} max_{i - n < j \le i} \ a_j - j + i\)。

于是我们令 \(t_i = a_i - i\)。并且让 \(i\) 向前平移 \(n\) 为,得到 \(ans = \min_{1 \le i \le n}(i + max_{i \le j \le 2 \times n} \ a_j) + (n - 1)\)。

实际上就是维护后缀最大值。相同的,对于每一个 \(j\) 我们只需维护这个点作为 \(i\) 的最大后缀中最小的 \(i\)。这个操作我们可以使用单调队列进行维护。

有了修改,我们用一颗线段树来维护单调队列即可。所以复杂度即为 \(O((n + m) \log^2 n)\)。

code

P6528

问题等价于求 \(\sum_{l1 \le i \le r1} \sum_{l2 \le j \le r2} \lfloor \frac{\sum^{\max(i,j)}_{x=\min(i,j)} a_x}{k} \rfloor\)。

首先我们可以通过容斥来把这个问题拆解成若干个形式为 \(\sum_{l \le i \le r}\sum_{l \le j \le r}\lfloor \frac{\sum^{\max(i,j)}_{x=\min(i,j)} a_x}{k} \rfloor\) 的式子。

接下来我们只需要求出那个式子即可。

我们先对 \(a\) 数组求前缀和,为 \(s\)。后面那个式子即为 \(\lfloor \frac{s_i - s_{j - 1}}{k} \rfloor\)。

接下来我们令 \(c_i = \lfloor \frac{s_i}{k} \rfloor,d_i = s_i \mod k\)。

那么后面那个式子就是 \(c_i - c_{i - 1} - [d_j \le d_{i - 1}]\)。

然后我们发现前面的是可以 \(O(n)\) 预处理,\(O(1)\) 查询的。后面的式子把 \(l - 1\) 和 \(r\) 拎出来然后用主席树求一下即可,剩下的套莫队二离的板子就行了。

DS Record的更多相关文章

  1. DNS RR代码和含义

    记录类型 代码 号码 定义的 RFC 描述 功能 A 1 RFC 1035 IP 地址记录 传回一个 32 比特的 IPv4 地址,最常用于映射主机名称到 IP地址,但也用于DNSBL(RFC 110 ...

  2. 给你的SpringBoot做埋点监控--JVM应用度量框架Micrometer

    JVM应用度量框架Micrometer实战 前提 spring-actuator做度量统计收集,使用Prometheus(普罗米修斯)进行数据收集,Grafana(增强ui)进行数据展示,用于监控生成 ...

  3. 3W字干货深入分析基于Micrometer和Prometheus实现度量和监控的方案

    前提 最近线上的项目使用了spring-actuator做度量统计收集,使用Prometheus进行数据收集,Grafana进行数据展示,用于监控生成环境机器的性能指标和业务数据指标.一般,我们叫这样 ...

  4. DNS资源纪录(Resource Record)介绍

          http://dns-learning.twnic.net.tw/bind/intro6.html 类型 SOA NS A AAAA PTR CNAME MX -------------- ...

  5. 架构模式数据源模式之:表数据入口(Table Data Gateway)、行数据入口(Row Data Gateway)、活动记录(Active Record)

    一:表数据入口(Table Data Gateway) 表数据入口提供了用于访问单个表或者视图(也包含了联表查询)的所有SQL,通常一个表一个类.其它代码通过它来实现对数据库的交互.基于这个特点,表数 ...

  6. 域知识深入学习二:建立AD DS域

    2.1 建立AD DS域前的准备工作 先安装一台服务器,然后将其升级(promote)为域控 2.1.1 选择适当的DNS域名 AD DS域名采用DNS的架构与命名方式 2.1.2 准备好一台支持AD ...

  7. Dempster–Shafer theory(D-S证据理论)初探

    1. 证据理论的发展历程 Dempster在1967年的文献<多值映射导致的上下文概率>中提出上.下概率的概念,并在一系列关于上下概率的文献中进行了拓展和应用,其后又在文献<贝叶斯推 ...

  8. salesforce 零基础学习(六十二)获取sObject中类型为Picklist的field values(含record type)

    本篇引用以下三个链接: http://www.tgerm.com/2012/01/recordtype-specific-picklist-values.html?m=1 https://github ...

  9. Track 造成Goldengate abended的那条record

    Email收到了这样的报错: 2016-12-07 02:52:22  WARNING OGG-01004  Aborted grouped transaction on 'MSP.USER_ACTI ...

  10. oracle遇到的锁异常,oralce record is locked by another user

    由于我在前不久的一次项目调试的时候,将一条数据的ID与另一条数据的ID相同了,但不知为什么没有报错,当在页面发现问题时,删除这条数据时就报错了,oralce record is locked by a ...

随机推荐

  1. eclipse jar包 Source not found

    jar包 Source not found 错误内容: Source not found The source attachment does not contain the source for t ...

  2. [Go] 有了 cast 组件, golang 类型转换从此不再困扰

    在 golang 中,参数和返回值之间往往涉及 int.string.[].map 等之间的转换. 如果是手动去处理,一容易出错,二不能兼容多数类型,比较麻烦. 使用 cast,能够让代码更健壮.可维 ...

  3. 通过WebRTC简单实现媒体共享

    通过WebRTC简单实现媒体共享 媒体协商 在设置本地描述符(offer/answer)前,我们总是需要将媒体添加到连接中,只有这样在描述符中才能包含需要共享的媒体信息,除非你不需要共享媒体. 在实际 ...

  4. 2018-7-15-WPF-在-DrawingContext-的-push-如何使用

    title author date CreateTime categories WPF 在 DrawingContext 的 push 如何使用 lindexi 2018-7-15 15:51:0 + ...

  5. Vue2源码解析-源码调试与核心流程梳理图解

    现在VUE3已经有一段时间了,也慢慢普及起来了.不过因为一直还在使用VUE2的原因还是去了解和学了下它的源码,毕竟VUE2也不会突然就没了是吧,且VUE3中很多原理之类的也是类似的.然后就准备把VUE ...

  6. vue应用el-tabel封装

    <template> <div class="table"> <el-table :data="tableList" style= ...

  7. 从[SDOI2011]消防 到[NOIP2007]树网的核

    有关消防一题中最优解一定在直径上的证明 P2491 [SDOI2011] 消防 P1099 [NOIP2007 提高组] 树网的核 题目描述 在一颗 \(n\) 个节点的无根树中,找到一条不超过 \( ...

  8. Competition Set - AtCoder I

    这里记录的是这个账号的比赛情况. ARC172 2024-2-18 Solved:4/6 D(Hard-,2936) 给定所有数对 \((i,j),1\le i\lt j\le n\) 的一个排列 \ ...

  9. 四:海思Hi3516CV500/Hi3516DV300

    Hi3516CV500 和 Hi3516DV300 均是海思推出的 IP Camera  SoC [System-on-a-Chip:SoC芯片是一种集成电路的芯片] 芯片. 针对海思 HI3516D ...

  10. 07. rails 创建user模型

    rails帮助命令 rails -h 创建user模型 命令行 haima@haima-PC:/media/haima/34E401CC64DD0E28/site/go/src/ruby/circle ...