尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

发喷山火(volcano)+CF2119F Volcanic Eruptions 解题报告

发喷山火(volcano)+CF2119F Volcanic Eruptions 解题报告
📅 发布时间:2026/6/19 18:35:12

发喷山火

神题

先来初步挖掘一下这个走路过程的性质:

  1. 初始时 \(S=1\),且 \(S\le 0\) 就死了,所以在没有走到 \((1,1)\) 之前,只能走 \((1,-1)\) 的边。
  2. 由于你和岩浆走路速度相同,所以一旦路径中你已经触碰到岩浆,那么你无论如何都逃不出去了,所以触碰过岩浆等价于最后停下的位置没有岩浆。

由性质1,如果没有经过 \((1,1)\) 的边,那么一定是 \(1,-1,1,-1,\dots\) 交替走。否则先来分析经过 \((1,1)\) 的情况,这显然是强于没有的情况的。

我们试图刻画一下最优走法的形态。往返是不好处理的,我们将在一条边上来回走的行为称为掉头,那么不难发现,在没有经过 \((1,1)\) 之前就掉头一定是不优的,因为我们可以将这些掉头全部放到 \((1,1)\) 的边上不停掉头。

然后就可以将走法刻画成一个简单的形态:一条链外接一条尽头为 \((1,1)\) 边的支链

volcano.png

得到形态后,考虑固定住终点 \(ed\),那么所有满足要求的 \((1,1)\) 就是从主链分出去的各个支链中满足到起点的路径都是 \((1,-1)\) 中最靠近主链的。

接下来考虑表示出答案,记 \(dep_{u}\) 表示根到 \(u\) 的距离。对于一条从 \(st\to ed\) 的路径,其对起点 \(st\) 的贡献是什么?根据前面的分析,没有碰到岩浆等价于最后终点 \(ed\) 没有碰到岩浆,所以到达时间 \(t\le dep_{ed}\),这样就不用考虑岩浆了,再分析一下取到的上界。注意到走掉头边是不会改变路径长度奇偶性的,原来的简单路径长度奇偶是 \(dep_{st}\oplus dep_{ed}\),那么奇偶性不会变,有 \(t\equiv dep_{st}\oplus dep_{ed}\pmod 2\)。那么最终的答案可以表示为 \(dep_{ed}-[(dep_{st}\oplus dep_{ed})\not\equiv dep_{ed}\pmod 2]\),化简为 \(dep_{ed}+(dep_{st}\bmod 2)-1\)。

我们发现,这个答案的式子中只需要对 \(st\) 求出 \(\displaystyle\max_{st\to ed\texttt{ is valid}} dep_{ed}\)。

弱化版(只有一个 \(st\))---CF2119F Volcanic Eruptions:

以 \(st\) 为根,考虑对 \(ed=u\) 处理贡献。用 \(dis_u\) 表示到点 \(u\) 的距离,\(s_u\) 表示到点 \(u\) 的 \(w\) 贡献和。对于一条支链 ,用 \(k\) 表示从主链到最近的 \((1,1)\) 的距离,从这条支链往下走到 \(u\) 的路径最低点为 \(mi\),设 \(x\) 表示在 \((1,1)\) 上的掉头次数。由于要在 \(dep_{u}\) 时间之前到 \(u\),所以 \(dis_{u}+2k+2x<dep_u\),即 \(x\le \left\lfloor\dfrac{dep_u-dis_u-1-2k}{2}\right\rfloor\),并且要保证走 \(v\to u\) 这条路时生命值始终为正,即 \(mi+2x\ge 1\),即 \(x\ge \left\lceil\dfrac{-mi+1}{2}\right\rceil\),只需要 \(x\) 有取值即可,等价于满足:

\[\left\lceil\dfrac{-mi+1}{2}\right\rceil\le \left\lfloor\dfrac{dep_u-dis_u-1-2k}{2}\right\rfloor \\ \Rightarrow \left\lceil\dfrac{-mi+1}{2}\right\rceil\le \left\lfloor\dfrac{dep_u-dis_u-1}{2}\right\rfloor-k \\ \Rightarrow k\le \left\lfloor\dfrac{dep_u-dis_u-1}{2}\right\rfloor-\left\lceil\dfrac{-mi+1}{2}\right\rceil \]

于是可以在 \(\mathrm{dfs}\) 的过程中维护上述信息,时间复杂度 \(O(n)\)。

相关新闻

  • PHP转Go系列 | PHP8 这些新函数让你眼前一亮
  • 代码随想录算法训练营第二天 |209.长度最小的子数组,59. 螺旋矩阵 II
  • 虚拟机5

最新新闻

  • DSS-GAN:基于Mamba的高效生成对抗网络架构解析
  • 解密HarmonyOS签名适配:5步实现MicroG无缝集成终极指南
  • 终极开源AI数字人平台:3步实现离线视频创作的完整指南
  • 2026年值得信赖的装修公司推荐,体验服务品质之选 - mypinpai
  • 告别抢票焦虑!95%成功率的大麦自动抢票神器完全指南
  • ExtCore实战案例:如何从零开始构建一个完整的模块化CMS

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号