首页 > 其他分享 >DS Record

DS Record

时间:2024-05-13 15:51:55浏览次数:21  
标签:le rev pos 我们 Record add 操作 DS

八云蓝自动机 Ⅰ

首先我们对于操作 \(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

标签:le,rev,pos,我们,Record,add,操作,DS
From: https://www.cnblogs.com/Carousel/p/18189392

相关文章

  • Laravel Model中的$appends
    protected$appends是Laravel模型中的一个属性,用于指定哪些虚拟属性(Accessor)应该被包含在模型的数组或JSON表示中。虚拟属性是在模型中定义的,通过使用Accessors和Mutators来访问和修改模型属性的值。这些虚拟属性不会存储在数据库中,但可以通过模型实例进行访问和操作......
  • 采用双dsPIC DSC内核配置,DSPIC33CH128MP208-E/PT DSPIC33CH128MP208-I/PT DSPIC33CH12
    dsPIC33CH系列数字信号控制器简介dsPIC33CH系列控制器采用单芯片、双dsPICDSC内核配置,将为设计高端嵌入式控制应用的系统开发人员带来福音。根据设计,dsPIC33CH的两个内核一个是主核,一个是副核。副核用于执行时间关键型专用控制代码,主核负责运行用户接口、系统监控和通信功能,专为......
  • SystemVerilog -- 3.0 SystemVerilog Threads
    SystemVerilogThreadsWhatareSystemVerilogthreadsorprocesses?thread或process是作为单独实体执行的任何一段代码。在verilog中,每个initial和always块都作为单独的thread生成,这些threads从0time开始并行运行。block还会创建并运行的不同threads。forkjo......
  • Common-Linux-commands
    Linux常用命令用户切换//切换到超级用户gec@ubuntu:~$sudo-s[sudo]passwordforgec:root@ubuntu:~# //root表示超级用户名字#表示超级用户权限标志//切换到普通用户root@ubuntu:~#suxxx//第一种方式xxx指的是系统中用户......
  • 双核、DSPIC33CH128MP203-I/M5 DSPIC33CH128MP203-H/M5 DSPIC33CH128MP203-E/M5数字信
    产品简介dsPIC33CH双核数字信号控制器在单个芯片中集成了两个dsPICDSC内核,一个设计用作主器件,而另一个则设计用作从器件。从内核用于执行专用、时间关键型控制代码,而主内核则用于运行用户界面、系统监测和通信功能以及最终应用的定制。dsPIC33CH器件优化用于高性能数字电源、电......
  • SolidState 靶机 walkthrough
    扫描┌──(root㉿kali)-[/home/kali]└─#nmap-T5-A-v-p-192.168.80.141StartingNmap7.92(https://nmap.org)at2022-10-2403:50EDTNSE:Loaded155scriptsforscanning.NSE:ScriptPre-scanning.InitiatingNSEat03:50CompletedNSEat03:50,0.00......
  • DSP学习笔记之IIC
    IIC简介IIC总线是同步通信的一种特殊形式,是一种串行,半双工的通信,I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。IIC分为硬件IIC和软件IIC,DSP中有硬件IIC,但是不方便拓展,所以日常使用时使用软件IIC居多。IIC总线通信过程主机发送起始信号启用总线主机发送......
  • DSP学习笔记之SPI
    DSP学习笔记之SPISPI介绍SPI的全称是"SerialPeripheralInterface",意为串行外围接口。SPI是一种高速的,全双工,同步的通信总线,SPI采用主从方式工作,一般有一个主设备和一个或多个从设备;SPI需要至少4根线,分别是MISO(主设备输入从设备输出)、MOSI(主设备输出从设备输入)、SCLK(时钟)、C......
  • SciTech-Mathmatics-ProbabilitiesAndStatistics-Distribution-is-all-you-need: 概率
    Distribution-is-all-you-need概率统计到深度学习,四大技术路线图谱,都在这里!https://github.com/graykode/distribution-is-all-you-need自然语言处理路线图:数学基础->语言基础->模型和算法项目作者:Tae-HwanJung,Github:graykode,2019-09-3013:35,选自Github自然......
  • 第六届·2024 MindSpore 量子计算黑客松热身赛赛题解读
    第六届·2024MindSpore量子计算黑客松火热进行中。本次大赛由量子信息网络产业联盟主办,昇思MindSporeQuantum社区承办,多所高校和单位联合举办。开发者将全面体验全新一代通用量子计算框架MindSporeQuantum。热身赛为量子计算基础学习和编程演练。完成热身赛的前100名选手将有......