势能线段树/吉司机线段树

BZOJ3211 花神游历各国
BZOJ5312 冒险
BZOJ4355 Play with sequence
BZOJ4695 最假女选手

\(A_i = max(A_i, x)\) 这种操作的 tag 不需要实际记录下来, son.mn1 = min(max(son.mn1, dad.mn1), dad.mx1) 就行了。

修改 mn1, mn2 的时候需要特判区间只有 1 个数和 2 个数的情况,因为这些情况涉及到 mx1, mx2 也可能改变。

想清楚 tag_covertag_add 应该如何叠加。

想清楚怎样更新严格的 mn1, mn2

代码长的时候心态别崩,不要皮,不要打错变量名……这是老生常谈了。

善于利用黑暗暴走 OJ 。

关于复杂度证明:关键节点,似乎一个关键节点改变用一个 log ,然后根据 tag 标记的原理至多 log 个 tag ,所以理论上是 \(O(n\cdot \log^2 n)\) ,实际上接近 \(O(n\cdot \log n)\) 。

upd: 一点优化

  1. 虽然还没有到达要修改的区间 \([s,t]\) ,但是修改操作对于包含 \([s,t]\) 的区间 \([l,r]\) 都已经没有了影响,应该直接返回。

  2. 区间 and 上或者 or 上一个数 \(x\) ,查询 \(max\) 的题,按位讨论,对于 \(sum\_and\ xor\ sum\_or = 1\) 的位(等于 \(0\) 时显然怎么操作都不会改变 \(max\) ),只要 \(x\) 在这些位的值全部相等即无影响,因为这样要么完全没有修改这些位,要么么全部修改成了一个相同的值。

((p->s_a ^ p->s_o) & x) == 0 || ((p->s_a ^ p->s_o) & x) == (p->s_a ^ p->s_o)

只讨论了一种也不会太慢,但确实加上会快一些。

我为何会深入思考这个?因为 LOJ6507 「雅礼集训 2018 Day7」A T 飞了。

转载于:https://www.cnblogs.com/ghcred/p/10240464.html

势能线段树/吉司机线段树-我没有脑子相关推荐

  1. 势能线段树(吉司机线段树)专题

    势能线段树(吉司机线段树)专题 势能线段树在近期训练时遇到了好几次,但是由于本人太懒一直没补完,结果ICPC网络赛还真就出了一道势能线段树Orz--结果当然是没做出来--痛定思痛,这回把之前欠的一块儿 ...

  2. P6242-[模板]线段树3【吉司机线段树】

    正题 题目链接:https://www.luogu.com.cn/problem/P6242 题目大意 给出一个长度为nnn的序列aaa,mmm次要求支持操作 区间加上一个值kkk 区间所有aia_i ...

  3. 2022.08.21 吉司机线段树略讲

    Interpretation \color{green}{\texttt{Interpretation}} Interpretation 吉司机线段树(A.K.A. 势能线段树),个人觉得,就是对普通 ...

  4. 2020ICPC(南京) - Just Another Game of Stones(吉司机线段树+博弈)

    题目链接:点击查看 题目大意:给出一个长度为 nnn 的数列 aaa,现在需要执行 mmm 次操作,每次操作分为两种类型: 1lrx1 \ l \ r \ x1 l r x:对于所有 i∈[l,r]i ...

  5. HDU - 5306 Gorgeous Sequence(吉司机线段树)

    题目链接:点击查看 题目大意:给出 1 ~ n 的区间以及 m 次操作,每次操作分为三种形式: 0 l r val:对于区间 [ l , r ] ,a[ i ] = min ( a[ i ] , va ...

  6. P7560-[JOISC 2021 Day1]フードコート【吉司机线段树】

    正题 题目链接:https://www.luogu.com.cn/problem/P7560 题目大意 有 n n n个队列,要求支持操作: 往 [ L , R ] [L,R] [L,R]的队列中插入 ...

  7. 解题报告:P3834 【模板】可持久化线段树 2(主席树)详解

    P3834 [模板]可持久化线段树 2(主席树) 题解 P3834 [[模板]可持久化线段树 2(主席树)] 1)静态求第k大数 可持久化线段树,不能用堆的方法存子结点了,所以用指针l表示左儿子r表示 ...

  8. 暑假集训8.10-网络流套树剖套线段树

    题目:dtoj2797旅行商 其实就是裸的网络流套树剖套线段树其实代码不难码 emmmmmm我决定草率的直接上代码,这可能是一条无营养的博客.... #include<bits/stdc++.h ...

  9. 【BZOJ-3196】二逼平衡树 线段树 + Splay (线段树套平衡树)

    3196: Tyvj 1730 二逼平衡树 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 2271  Solved: 935 [Submit][St ...

最新文章

  1. SPOJ AMR10I Dividing Stones --DFS
  2. ubuntu18.04.4 安装 qq x64 版本
  3. python3 获取异常类型
  4. GridView的翻页
  5. Python sort()和sorted()
  6. SSH-jar包相应作用
  7. 数据湖,大数据的下一个变革!
  8. 微型计算机技术及应用 考试,陕西理工学院微型计算机技术及应用考试试卷(5份)...
  9. 简单介绍java Enumeration(转)
  10. python安装方法3.8.2_Python(开发环境工具)v3.8.2 x32 官方win版
  11. oppok3如何刷机_OPPO K3刷机教程?
  12. erf和erfc函数
  13. 独立商城网站SEO优化方法
  14. 论文笔记:图像分割——ExFuse DFN
  15. 我从写技术博客中收获到了什么?- J_Knight_
  16. 这几本值得你一看再看的程序员素养必备好书
  17. 51单片机c语言dac0832产生波形,基于51单片机的DAC0832波形发生器设计
  18. 研发、交付、市场之间的会议,有这些可借鉴的创新环节
  19. 双显卡只用独显好吗_双显卡如何切换到独立显卡?双显卡只用独显的方法
  20. java saf,SAF框架介绍,SAF框架使用详解

热门文章

  1. 开源项目托管GitHub的使用详述
  2. Android中的Fragment使用
  3. [转]讲解安装Ubuntu nfs配置系统
  4. 【转】Linux查看文件编码格式及文件编码转换
  5. improve怎么加ing_英语当中的ing
  6. 掌门教育微服务体系 Solar 第 3 弹:Nacos 企业级落地下篇
  7. linux文件指令 例子,Linux 命令:文件目录操作与实例
  8. php loading效果,利用CSS3打造十种Loading效果
  9. win10下linux子系统6,Windows10下安装Linux子系统2020年7月最新版
  10. linux 7za下载,Linux安装7za