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

手速场 - ABC435 A~F Solution

难度:红红橙黄绿蓝

\(\text{A}\)

根据求和公式,\(1+2+\cdots +n=\frac{n(n+1)}{2}\),因此直接输出即可。

时间复杂度 \(O(1)\)

\(\text{B}\)

按照题意模拟。

时间复杂度 \(O(n^3)\)

\(\text{C}\)

我们发现倒下的点总是一段前缀,因此记录 \(r\) 表示最大的倒的点,初始 \(r=1\),随后从 \(i=[1,n]\)

  • \(i>r\),退出遍历。
  • \(i\leq r\),令 \(r=\max(r,i+a_i-1)\)

倒下的牌个数即为 \(\min(r,n)\)

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

\(\text{D}\)

我们考虑建反图,从染黑的点出发染黑其可以到达的点,如果到达的点已经被染黑,则终止遍历。最后直接判断点是否被到达过即可。

时间复杂度 \(O(n+m)\)

\(\text{E}\)

动态开点线段树模板题。

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

\(\text{F}\)

我们注意到猫只会从高的点跳到矮的点,因此设计 \(dp_i\) 表示跳到 \(i\) 的最大价值。如果 \(j\) 可以跳到 \(i\),令 \(a_i=x\)\(p_x=i\),则若 \(p_j<p_i\),需要满足:

\[i>\max_{k=p_j+1}^{p_i} a_k \]

否则若 \(p_i<p_j\),则:

\[i>\max_{k=p_i+1}^{p_j}a_k \]

\((i,j)\) 可以转移时 \([i,j]=1\),否则 \([i,j]=0\)

则有转移方程:

\[dp_i=\max_{k=i+1}^n [i,j]dp_k+|p_i-p_k| \]

随后我们考虑分类讨论 \(p_i<p_k\) 的情况与 \(p_i>p_k\) 的情况:

我们注意到 \(dp_k\) 可以转移到的 \(i\)\([k,i]=1\) 是可以表示的,我们用单调栈维护在 \(a_{p_k}\) 左边第一个大于其的位置 \(f1\) 和右边第一个大于其的元素 \(f2\)。则我们可以考虑主动转移,将 \(dp_i\) 转移到 \([f1,f2]\),不难发现转移方程中:

  • \(p_i<p_k\),则 \(dp_i+p_k-p_i\) 中,\(dp_k+p_k\) 需要最大化。
  • \(p_i>p_k\),则 \(dp_i+p_i-p_k\) 中,\(dp_k-p_k\) 需要最大化。

由此维护 \(dp_k+p_k\)\(dp_k-p_k\),使用线段树维护动态规划即可。

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

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

相关文章:

  • python 装饰器 —— @functools.wraps
  • 2025新房整装服务哪家强?这份避坑指南+口碑榜单请收好 - 品牌测评鉴赏家
  • Linux中级のPHP
  • DSU on array - 反向操作区间合并
  • 东方博宜OJ 4567:树的根 ← 邻接表 or 链式前向星
  • 关于Visual Studio 2022 Git无法使用的解决办法
  • Ruby-saml 因 XML 解析器命名空间处理差异导致 SAML 认证绕过漏洞剖析
  • 准确率和召回率的平衡点
  • 按DDD领域分析Openfeign
  • Python threading.Lock() thread lambda
  • Python 面向对象编程 (OOP) 核心:类、封装与继承
  • 12/10
  • 完整教程:分享一个基于服务端地图服务裁剪的方法
  • Nginx安全配置
  • 并发编程的三大基石:从底层逻辑聊透“同步、互斥与分工”
  • 个人电脑本地私有知识库解决方案:访答知识库全面解析
  • 【Agent】MemOS 源码笔记---(4)---KV Cache
  • 2025.12.10
  • 大数据存储新范式:RustFS与Hadoop生态无缝集成实战指南
  • Ai元人文构想:黑箱之渡,白箱之锚——大行为模型践行意义行为原生
  • 在 .Net 8 WEBAPI 中实现实体框架的 Code First 办法
  • 60
  • Coppersmith 学习笔记
  • python —— 树的遍历 —— 深度优先遍历(先序、中序、后序) —— 非递归方式(使用栈数据结构进行辅助)
  • 【SQL技术】不同数据库引擎 SQL 优化方案剖析 - 详解
  • IntelliJ IDEA 最常用的快捷键
  • C++ 循环结构:控制程序重复执行的核心机制 - 教程
  • ASP.NET 实战:用 CSS 选择器打造一个可搜索、响应式的书籍管理系统 - 教程
  • Python list all files in dir recursivelly
  • python —— 树的遍历 —— 深度优先遍历(先序、中序、后序)