CF1588F Jumping Through the Array

技术CF1588F Jumping Through the Array CF1588F Jumping Through the ArrayCF1588F Jumping Through the Arra

穿过阵列

CF1588F Jumping Through the Array

给定长度为(n)的序列(a)和排列(p ),可以实现下列操作:

给出\(l,r\)。seek \(\ sum \ limits _ { I=l } { r } a _ I \);

给出\(x,y\)。让我们将\(I \u to p _ I \u)连接成置换环,并将\(y \u)加到环上\(x \u)所在的每个点的权重上。

给出\(x,y\)。Exchange \(p_x,p_y\)。

\ 1 \ le n \ le 2 \ cdot 10^5,-10^8\le a _ I \ le 10^8,1\le p _ I \ le n,1\le q\le 2\cdot 10^5\)。

时间限制\(\text{8000ms}\),空间限制\(\text{512MB}\)。

Solution

按照时间根考虑分治,我们将一起处理\(B\)个连续操作。

我们把\(2\)操作的操作点(即\(x\)和\(3\)操作的操作点(x,y\)染成黑色,只操作这些黑点。

在操作之前考虑每个置换环,如下所示:

我们把它分成几个“链”(红色区域),可以发现每个链在操作中都是作为一个整体出现的,也就是,\(\Delta\)相等:

只有\(2B\)个链,所以我们只需要为每个链维护\(\Delta\)。

对于\(1\)操作,区间\([l,r]\)的点权重之和为\(\sum\limits_{ I=l} {r} \)加上\(\sum\limits_{每个链} \ delta \。

对于\(2\)操作,它必须将\(y\)和复杂性\ (o (b) \)添加到当前\(x\)所在的链和该链所在的环的其他链中。

对于\(3\)运算,我们交换两个黑点的链号,即\(O(1)\)。

在这一点上,我们可以以(o(\ frac { q } { b } \ CDOT(B2 \ log n))\)的复杂性来解决这个问题。

取\(B=\sqrt{n/\log n}\),时间复杂度\(O(q\sqrt{n\log n})\)。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/92786.html

(0)

相关推荐

  • 如何分析VCS监控采集的共享内存和实战原理

    技术怎么解析共享内存原理与VCS监控采集实战本篇文章给大家分享的是有关怎么解析共享内存原理与VCS监控采集实战,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

    攻略 2021年12月16日
  • Oracle数据库产重启服务和监听程序怎么实现

    技术Oracle数据库产重启服务和监听程序怎么实现这篇文章主要介绍“Oracle数据库产重启服务和监听程序怎么实现”,在日常操作中,相信很多人在Oracle数据库产重启服务和监听程序怎么实现问题上存在疑惑,小编查阅了各式

    攻略 2021年12月11日
  • 关于计算机中使用补码运算

    技术关于计算机中使用补码运算 关于计算机中使用补码运算1. 原码、反码、补码简单介绍原码、反码、补码都是含有一个符号位的、对带符号数的二进制表示,对应于同一个真值。
    原码带符号位直接读出来就是真值。

    礼包 2021年12月6日
  • 12组-Alpha冲刺-4/6

    技术12组-Alpha冲刺-4/6 12组-Alpha冲刺-4/6侯钦凯过去两天完成了哪些任务
    完善UI界面,复习考试展示GitHub当日代码/文档签入记录接下来的计划复习考试,准备答辩还剩下哪些任务博

    礼包 2021年11月15日
  • 気怎么读,situation怎么读

    技术気怎么读,situation怎么读situation[英][ˌsɪtʃuˈeɪʃn] [美][ˌsɪtʃuˈeʃən] 生词本
    简明释义
    n.(人的)情况気怎么读;局面,形势,处境;位置;[心理学]情境
    复数

    生活 2021年10月27日
  • 怎么用Python来统计知识星球打卡作业

    技术怎么用Python来统计知识星球打卡作业本篇内容主要讲解“怎么用Python来统计知识星球打卡作业”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Python来统计知

    攻略 2021年11月29日