八云蓝自动机 Ⅰ

首先我们对于操作 \(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. element-ui多选(批量)删除

    导出axios请求

  2. 力扣479(java)-最大回文数乘积(困难)

    题目: 给定一个整数 n ,返回 可表示为两个 n 位整数乘积的 最大回文整数 .因为答案可能非常大,所以返回它对 1337 取余 . 示例 1: 输入:n = 2输出:987解释:99 x 91 = ...

  3. Spring Cloud Bus 消息总线介绍

    简介: 本文配套可交互教程已登录阿里云知行动手实验室,PC 端登录 start.aliyun.com 在浏览器中立即体验. 作者 | 洛夜来源 | 阿里巴巴云原生公众号 本文配套可交互教程已登录阿里云 ...

  4. C#类型后加问号?

    C# 可空类型(Nullable)说明_w3cschool 细说Nullable<T>类型 - Sweet-Tang - 博客园 (cnblogs.com) 值类型变量不能null,加问号 ...

  5. WPF 已知问题 RadioButton 指定 GroupName 后关闭窗口可能导致无法选中

    本文记录一个 WPF 已知问题,当 WPF 的 RadioButton 指定 GroupName 且将 IsChecked 状态绑定到 ViewModel 上,将包含以上控件的代码的窗口显示两个,接着 ...

  6. Ubuntu VNC 远程桌面及常见问题

    一.Ubuntu 远程桌面开启 在ubuntu 设置中打开远程桌面 **注意:如果没有共享桌面选项也不要谎,只需要安装 vino 即可 sudo apt update sudo apt install ...

  7. 基于FPGA的二进制转BCD

    BCD码(nary-Coded Decimal‎)又称二-十进制代码,亦称二进码十进数.是一种二进制的数字编码形式,用二进制编码的十进制代码.这种编码形式利用了四个位元来储存一个十进制的数码. 在数字 ...

  8. R3_Elasticsearch Index Setting

    索引的配置项按是否可以更改分为static属性与动态配置,所谓的静态配置即索引创建后不能修改.目录如下:生产环境中某索引结构(7.X后有变化) 索引静态配置 1.分片与压缩 index.number_ ...

  9. 06. C语言指针

    [指针] C语言使用数据名调用数据,数据名相当于C语言的直接寻址,直接寻址只能调用固定数据,而指针是间接寻址,指针存储了另一个数据的地址,使用指针调用数据时首先取指针存储的内存地址,之后使用此地址调用 ...

  10. LLM生态下爬虫程序的现状与未来

    最近出现一批与LLM有关的新的爬虫框架,一类是为LLM提供内容抓取解析的,比如 Jina Reader 和 FireCrawl ,可以将抓取的网页解析为markdown这样的对LLM友好的内容,例如m ...