DS Record
八云蓝自动机 Ⅰ
首先我们对于操作 \(1\) 转换,我们给 \(k\) 单独再开一个点 \(a_c\),这样我们就可以把操作 \(1\) 转换成操作 \(2\) 了。
对于区间问题,我们考虑使用莫队进行维护。
我们记录当前 \(a\) 的值,\(pos_i\) 表示原来第 \(i\) 个位置的数现在在哪里,\(rev_i\) 维护现在第 \(i\) 个数原来在哪里,和 \(add_i\) 现在第 \(i\) 个位置上查询了多少次。
首先我们先考虑指针 \(r\) 往右移的情况。
- 这个操作是交换
直接交换 \(a_x\) 和 \(a_y\),\(rev_x\) 和 \(rev_y\),\(pos_{rev_x}\) 和 \(pos_{rev_y}\)。
- 这个操作是查询
直接给 \(ans\) 加上 \(a_x\),然后 \(add_x\) 加 \(1\) 即可。
然后我们考虑指针 \(l\) 往左移的情况。
- 这个操作是交换
我们同样先交换 \(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})\)。
- 这个操作是查询
和上面一样,\(ans\) 加上 \(a_{pos_x}\),\(add_x\) 加上 \(1\)。
剩下两种类似,只需改改符号即可。时间复杂度 \(O(n\sqrt n)\)。
最后要注意本题对 \(2^{32}\) 取模。
转盘
我们可以先转换问题。
每个点在 \(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的更多相关文章
- DNS RR代码和含义
记录类型 代码 号码 定义的 RFC 描述 功能 A 1 RFC 1035 IP 地址记录 传回一个 32 比特的 IPv4 地址,最常用于映射主机名称到 IP地址,但也用于DNSBL(RFC 110 ...
- 给你的SpringBoot做埋点监控--JVM应用度量框架Micrometer
JVM应用度量框架Micrometer实战 前提 spring-actuator做度量统计收集,使用Prometheus(普罗米修斯)进行数据收集,Grafana(增强ui)进行数据展示,用于监控生成 ...
- 3W字干货深入分析基于Micrometer和Prometheus实现度量和监控的方案
前提 最近线上的项目使用了spring-actuator做度量统计收集,使用Prometheus进行数据收集,Grafana进行数据展示,用于监控生成环境机器的性能指标和业务数据指标.一般,我们叫这样 ...
- DNS资源纪录(Resource Record)介绍
http://dns-learning.twnic.net.tw/bind/intro6.html 类型 SOA NS A AAAA PTR CNAME MX -------------- ...
- 架构模式数据源模式之:表数据入口(Table Data Gateway)、行数据入口(Row Data Gateway)、活动记录(Active Record)
一:表数据入口(Table Data Gateway) 表数据入口提供了用于访问单个表或者视图(也包含了联表查询)的所有SQL,通常一个表一个类.其它代码通过它来实现对数据库的交互.基于这个特点,表数 ...
- 域知识深入学习二:建立AD DS域
2.1 建立AD DS域前的准备工作 先安装一台服务器,然后将其升级(promote)为域控 2.1.1 选择适当的DNS域名 AD DS域名采用DNS的架构与命名方式 2.1.2 准备好一台支持AD ...
- Dempster–Shafer theory(D-S证据理论)初探
1. 证据理论的发展历程 Dempster在1967年的文献<多值映射导致的上下文概率>中提出上.下概率的概念,并在一系列关于上下概率的文献中进行了拓展和应用,其后又在文献<贝叶斯推 ...
- salesforce 零基础学习(六十二)获取sObject中类型为Picklist的field values(含record type)
本篇引用以下三个链接: http://www.tgerm.com/2012/01/recordtype-specific-picklist-values.html?m=1 https://github ...
- Track 造成Goldengate abended的那条record
Email收到了这样的报错: 2016-12-07 02:52:22 WARNING OGG-01004 Aborted grouped transaction on 'MSP.USER_ACTI ...
- oracle遇到的锁异常,oralce record is locked by another user
由于我在前不久的一次项目调试的时候,将一条数据的ID与另一条数据的ID相同了,但不知为什么没有报错,当在页面发现问题时,删除这条数据时就报错了,oralce record is locked by a ...
随机推荐
- 力扣575(java&python)-分糖果(简单)
题目: Alice 有 n 枚糖,其中第 i 枚糖的类型为 candyType[i] .Alice 注意到她的体重正在增长,所以前去拜访了一位医生. 医生建议 Alice 要少摄入糖分,只吃掉她所有糖 ...
- 零信任策略下K8s安全监控最佳实践(K+)
简介: 本文重点将围绕监控防护展开,逐层递进地介绍如何在复杂的分布式容器化环境中借助可观测性平台,持续监控K8s集群,及时发现异常的 API 访问事件.异常流量.异常配置.异常日志等行为,并且结合合理 ...
- Serverless 时代下微服务应用全托管解决方案
简介: 本文介绍了 Serverless 时代下微服务的发展以及过程中遇到的相对较复杂的需求,面对这些,阿里云 Serverless 应用引擎 SAE 将"Serverless"的 ...
- KubeVela v1.3 多集群初体验,轻松管理应用分发和差异化配置
简介:KubeVela v1.3 在之前的多集群功能上进行了迭代,本文将为你揭示,如何使用 KubeVela 进行多集群应用的部署与管理,实现以上的业务需求. 作者:段威(段少) 在当今的多集群业务 ...
- Dubbo3.0|阿里巴巴服务框架三位一体的选择与实践
简介: 服务框架就像铁路的铁轨一样,是互通的基础,只有解决了服务框架的互通,才有可能完成更高层的业务互通,所以用相同的标准统一,合二为一并共建新一代的服务框架是必然趋势.Dubbo3.0 是 Dub ...
- [FE] uni-app 导航栏开发指南
一种是 原生导航栏添加自定义按钮.简单明了. pages.json 配置 { "path": "pages/log/log", "style" ...
- JavaScript 如何实现一个响应式系统
JavaScript 如何实现一个响应式系统 第一阶段目标 数据变化重新运行依赖数据的过程 第一阶段问题 如何知道数据发生了变化 如何知道哪些过程依赖了哪些数据 第一阶段问题的解决方案 我们可用参考现 ...
- aliyun全站DCDN刷新--Django
1.编写原因: 由于登录到阿里云DCDN,需要登录加打开各种页面,导致推送一次感觉非常麻烦,所以编写(网上以有很多可以借鉴) 2.基础环境 # 所需模块 pip install aliyun-pyth ...
- 羽夏闲谈——NewCode
前言 在工作学习中,我配置好了一个VSCode,学习C语言,需要经常性的创建代码文件,而往往这里面有一个固定的模板,比如下面: #define _CRT_SECURE_NO_WARNINGS #i ...
- WebKist Inside: CSS 样式表的组成
1 StyleSheet 一张 StyleSheet 由一系列 Rules 组成,这些 Rules 可以分成 2 大类: 1 Style Rule 2 At-Rule 下面的例子展示了 Style R ...