专题5-3 分块:带修改的莫队

本文详细介绍了如何在莫队算法中实现带修改的操作,通过增加时间维度记录修改,使用两个数组分别存储原始和修改后的颜色序列。同时,解决查询顺序问题,利用额外id信息确保输出顺序正确。

专题5-3 分块:带修改的莫队

PART 1 概述

大家都知道,普通的莫队算法是不提供修改操作的
原因就出在莫队算法的这个离线身上

如果我们有两个查询操作
[ 2 , 8 ] 和 [ 1 , 3 ],我们会把它排序为颠倒的顺序
但是如果中间有一个修改操作,就有可能出错
离线:“你来打我啊我看你不离线怎么莫队?”

不好意思这个博客真的可以为所欲为

既然我们没法去掉莫队算法的离线操作,我们就从另一方面去想

PART 2 具体操作

我们在之前是通过不断调整 l 和 r 的值来获得(排序过的)不同二元组(l,r)的答案

这样的话,我们只需要再加一元不就行了
将其修改为(l,r,time)
这样我们也可以在time上下一次内进行修改在这里插入图片描述
这种情况下,我们就需要用到两个数组,分别存原来的颜色序列和修改的颜色

有人可能会问,难道我们要用一个二维数组来存修改的颜色吗?其实不然,参见代码

for(int i=1;i<=n;++i) a[i]=read(),belong[i]=(i-1)/base+
"C:\Program Files\Python39\python.exe" "D:\AEB Management\9.py\BSW_JIRA_deal\bsw_task_jira_deal.py" 2025-11-24 15:34:25,985 - INFO - ============================================================ 2025-11-24 15:34:25,985 - INFO - BSW 数据处理流程启动 2025-11-24 15:34:25,986 - INFO - ============================================================ 2025-11-24 15:34:26,075 - INFO - 成功连接到数据库 system_test(default配置) 2025-11-24 15:34:26,097 - INFO - 成功连接到数据库 bsw_jira(bsw_jira配置) 2025-11-24 15:34:26,097 - INFO - 源表: jira_task_bsw, 目标表: jira_task_bsw_deal 2025-11-24 15:34:26,098 - INFO - 成功加载配置文件: responsible_config.json 2025-11-24 15:34:26,098 - INFO - 成功加载 BSW Staff List,包含 0 人 2025-11-24 15:34:26,512 - INFO - 处理分块 1 [1000行] 2025-11-24 15:34:26,601 - WARNING - 计算延迟时出错: Cannot subtract tz-naive and tz-aware datetime-like objects. 2025-11-24 15:34:26,636 - INFO - 新增 25 个计算列: Stack Classification, BSW Staff(Assignee), BSW Involve, Stack BSW Unanalyzed, Issue Status Resolved, ProjectNum, BSW Issue, Issue Status InProgress, Priority Medium, Priority Low, Issue Status Closed, BSW Analysis Conclusions, HorizontalExpansion PN, BSW Involve Unclosed, HorizontalExpansion Unfinished, HorizontalExpansion Count, Issue Status Open, HorizontalExpansion Delay, Stack BSW Analyzed, Priority High, BSW Self Test, Priority Highest, Priority Lowest, BSW Staff(Reporter), Stack Total 2025-11-24 15:34:26,671 - ERROR - 目标表 jira_task_bsw_deal 缺少以下列: 2025-11-24 15:34:26,671 - ERROR - - Custom field (Found in Mech version) 2025-11-24 15:34:26,671 - ERROR - - Priority Low 2025-11-24 15:34:26,671 - ERROR - - Custom field (Project Number P) 2025-11-24 15:34:26,671 - ERROR - - BSW Staff(Assignee) 2025-11-24 15:34:26,671 - ERROR - - Priority High 2025-11-24 15:34:26,671 - ERROR - - Issue Status Closed 2025-11-24 15:34:26,671 - ERROR - - Custom field (Car project OEM) 2025-11-24 15:34:26,671 - ERROR - - Issue Status Resolved 2025-11-24 15:34:26,672 - ERROR - - Custom field (Found in SVN revision) 2025-11-24 15:34:26,672 - ERROR - - Custom field (DanTe_StatusTransitionCounter) 2025-11-24 15:34:26,672 - ERROR - - Priority Highest 2025-11-24 15:34:26,672 - ERROR - - Issue Status Open 2025-11-24 15:34:26,672 - ERROR - - Issue Status InProgress 2025-11-24 15:34:26,672 - ERROR - - Sum Remaining Estimate 2025-11-24 15:34:26,672 - ERROR - - Custom field (Impact on Functional Safety) 2025-11-24 15:34:26,672 - ERROR - - Priority Lowest 2025-11-24 15:34:26,672 - ERROR - - BSW Staff(Reporter) 2025-11-24 15:34:26,672 - ERROR - - Priority Medium 2025-11-24 15:34:26,672 - WARNING - 将排除这些列并继续处理其他有效列
最新发布
11-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值