专栏文章

题解:P9320 [EGOI 2022] Tourists / 乌托邦旅行团

P9320题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mimzzq7d
此快照首次捕获于
2025/12/01 18:20
3 个月前
此快照最后确认于
2025/12/01 18:20
3 个月前
查看原文
有区间赋值操作考虑颜色段均摊。对每种颜色 cc 维护 tagc\operatorname{tag}_c,再对每个位置 ii 维护一个 bib_i,使得当前 ii 的真实值为 bi+tagcib_i+\operatorname{tag}_{c_i},其中 cic_iii 当前的颜色。
对于一个颜色段 (l,r,u)(l,r,u),其颜色改变为 vv 后,还要使得真实值那个式子成立。考虑当前其真实值为 bi+tagudis(u,v)b_i+\operatorname{tag}_{u}-\operatorname{dis}(u,v),我们要找到一个 bib'_i 使得 bi+tagv=bi+tagudis(u,v)b'_i+\operatorname{tag}_v=b_i+\operatorname{tag}_{u}-\operatorname{dis}(u,v),可得 bi=bi+tagudis(u,v)tagvb'_i=b_i+\operatorname{tag}_u-\operatorname{dis}(u,v)-\operatorname{tag}_v。所以要对 bib_i 进行区间加操作。
操作 e 直接在对应的 tag\operatorname{tag} 上加即可。查询只需要支持单点查询 bib_i 和颜色。
上述操作可以使用 BIT 和 ODT 轻松实现。认为 n,m,qn,m,q 同阶,时间复杂度 O(nlogn)\mathcal{O}(n\log n),空间复杂度 O(n)\mathcal{O}(n)

评论

0 条评论,欢迎与作者交流。

正在加载评论...