当前位置: 首页 > news >正文

P13544 [OOI 2022] Serious Business

P13544 [OOI 2022] Serious Business

题目

Dima 参加了好友 Peter 举办的节目《Peter 帮兄弟找工作》。在这个节目中,Dima 需要穿越一个 \(3 \times n\) 的矩形场地,场地共有 \(3\)\(n\) 列。每行的格子从左到右编号为 \(1\)\(n\)

每个格子 \((i, j)\) 内有一个整数 \(a_{i, j}\)。Dima 的初始分数为 \(0\),每当他经过某个格子 \((i, j)\),分数会增加 \(a_{i, j}\)(分数可能为负)。

起初,第一行和第三行的所有格子都是可用的,第二行所有格子都是不可用的。但 Peter 为 Dima 提供了 \(q\) 个特殊帮助,第 \(i\) 个特殊帮助可以将第二行的第 \(l_i\) 列到第 \(r_i\) 列的格子标记为可用,但每次使用该特殊帮助,Dima 的分数会减少 \(k_i\)。Dima 可以任意多次使用这些特殊帮助,同一格子可被多次解锁。

Dima 从第一行第一列的格子 \((1, 1)\) 出发,目标是到达第三行最后一列的格子 \((3, n)\)。每次他可以向下走到下一行,或者向右走到下一列(即行号或列号加 \(1\)),因此总共需要 \(n+1\) 步,其中 \(n-1\) 步为向右,\(2\) 步为向下。

Peter 承诺根据 Dima 的最终分数付费,最终分数为经过的所有格子的分数之和减去使用所有特殊帮助的总花费。请你帮助 Dima 最大化他的最终分数。

\(1 \le n, q \le 500\,000\)

思路

暴力做法即枚举第二行的区间,贪心覆盖,复杂度 \(O(n^2)\)

考虑dp。设 \(f_i\) 表示从 \((1,1)\)\((2,r_i)\) 的最大分数。

若在当前区间内的点 \(j,l_i\le j\le r_i\) 为第一层拐点,则有 \(f_i=\max s1_j+s2_{r_i}-s2_{j-1}-k_i\) ,令 \(a_j=s1_j-s2_{j-1}\) ,即为 \(a_j\) 的区间最大值。

若拐点在当前区间外,则可以从前面的区间转移过来,有 \(f_i=\max f_j+s2_{r_i}-s2_{r_j}-k_i\) ,令 \(a_{r_j}=f_j-s2_{r_j}\) ,即为 \(a_j\) 的区间最大值。

考虑记录答案。最初的想法是找到第二层拐点的区间在右端点 \(r\) 前,回溯贡献 ,然而会出现这样的情况:

即第一拐点在第二拐点后的情况。这样显然不合法。然而在记录状态时 \(f_i\) 只记录了右端点最右位置,并不知道第一个拐点是从哪里来。

这样回溯就可能造成不合法。可以按照上面的做法,枚举第二拐点所在的最右区间,再次将情况分为两种。

第一种,第一拐点与第二拐点在同一区间 \(i\) 上,有 \(ans=\max s1_j+s2_k-s2_{j-1}+s3_n-s3_{k-1}-k_i=\max ((s1_j-s2_{j-1})+(s2_k-s2_{k-1})+s3_n-k_i)\)

第二种,从上一个区间转移过来,则有 \(ans=max f_{r_j}+s2_k-s2_{r_j}+s3_n-s3_{k-1}-k_i=max((f_{r_j}-s2_{r_j})+max(s2_k-s3_{k-1})+s3_n-k_i)\)

注意到,这两种转移都是 \(\max A(x)+B(y),l\le x\le y\le r\) 的形式,容易用线段树维护。

时间复杂度 \(O(n\log n)\)

http://www.jsqmd.com/news/39345/

相关文章:

  • 区间与除法-线段树
  • CF1799F Halve or Subtract
  • Agent使用
  • 利用Java反射绕过Minecraft模组限制的技术解析
  • 足球
  • 新建 Microsoft Word 文档
  • 2025 年 11 月污水提升泵厂家推荐排行榜,进口污水提升泵,地下室家用污水提升泵,别墅/厕所/卫生间马桶污水提升泵,厨房墙排一体化污水提升泵公司推荐
  • 2025年高大空间冷暖机组厂家权威推荐榜单:高大空间供暖设备/高大空间采暖器/高大空间热水暖风机源头厂家精选
  • vue2 项目打包优化 - 东方不败-
  • 2025下半年国内液压/电动/半自动升降柱厂家排行榜:技术领先企业全面解析
  • Tita 项目:赋能教育培训机构突围,开启高效运营新篇章
  • 2025年矿用设备设施安全检测检验企业口碑排行榜
  • 2025年11月国内矿用设备设施安全检测检验厂家top10
  • 2025年矿用设备设施安全检测检验企业推荐指南
  • centos6.5升级openssh10.2p1
  • adb gdb+gdbserver远程调试ddsrouter
  • A4纸打印标签
  • 十、修改数据表 alter
  • TIA Portal 最新正式版本是 V20
  • Python 集合Set简介
  • 安装WIndows11时绕过微软账户强制要求,使用本地账户登录
  • 2025年RS485噪声监测仪定做厂家权威推荐榜单:噪声检测仪/工业声音传感器/噪声检测传感器源头厂家精选
  • 配置Centos/Ubuntu免密登录
  • HarmonyOS Next 快速参考手册 - 实践
  • 国标GB28181算法算力平台EasyGBS:构筑公安数字化安防的“核心枢纽”
  • 2025年11月重庆眼镜店最新推荐,覆盖青少年配眼镜/儿童配眼镜/老年人配眼镜/全人群配镜需求
  • 4、管理用户
  • 2、聚合查询(聚合函数)
  • 字节新动作!豆包编程模型 Doubao-Seed-Code 正式亮相,AI 写项目时代来了
  • 吴恩达深度学习课程二: 改善深层神经网络 第二周:优化算法(六)课后习题和代码实践