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

P13272 [NOI2025] 序列变换

想清楚了就真不难,个人认为比追忆略简单一点。

首先发现这个操作本质上就是告诉你可以合并一些数,感受一下会发现最后相当于保留一些数,使得每个数都能由一段区间转移过来,且这个区间内的数的贡献形式是 +-+-... 依次类推的。

接下来一个比较重要的观察是假设对于一个位置 \(x\),由区间 \([l, r]\) 收缩得到,那么形式必然是 \(l \to x\)\(r \to x\) 这样收缩,当然这也比较容易看出来。

进入正题,思考第一问,很显然的 \(O(n^3)\) 做法是设 \(f_i\),每次枚举一个区间转移,再枚举区间内的一个点挖掉,看是否可行即可。然后思考 \(O(n^2)\) 做法,不难发现,最后可能得到的 \(k\) 一定是一个区间(可以预处理得到),但是区间内的数不一定都能取到,这是因为到了最后一步我们并不知道具体是哪边大哪边小,实际上打个表或者注意力强的可以观察到要么全取偶数,要么全取奇数,条件就是看上面那个 +-+-... 到底是 + 的多还是 - 的多。这个时候我们第一问就可以 \(O(n^2)\) 做了。

考虑为什么上述做法不能够直接套用在第二问的做法上,根本原因是因为如果有一段区间不能选择数(也就是全 \(0\)),那么可能会与其它情况本质相同,从而计重,而第一问我们是求解最优性问题所以没有关系,我们思考如何强化这个计数结构。其实也不难,将向左的操作更改为碰到第一个 \(a_j = 0\) 就停止就好,类似于我们单调栈跑区间处理相同数的问题。

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

相关文章:

  • AMD Ryzen硬件调试进阶指南:5步掌握SMUDebugTool核心技术
  • ComfyUI-Florence2模型加载问题全面解析与解决方案
  • NoSleep:3分钟学会Windows防休眠神器,告别自动锁屏烦恼
  • Experiment6
  • iOS 知识点 - 编译与构建体系
  • 超详细版LED灯基础知识:适合初学者系统学习
  • Sedex与BSCI审核内容深度对比:差异解析与实践指引
  • 企业必看 DeepSeek 广告代理推荐|按效果付费获客无风险 - 品牌2026
  • 5分钟快速上手:ComfyUI-Florence2视觉AI模型完整使用指南
  • 成本意识在研发管理中如何落实
  • 【传统JSCC+Deep JSCC】联合信源信道编码完全指南
  • 终极SMUDebugTool指南:快速掌握AMD平台电源调试完整方案
  • 文泉驿微米黑字体仿写文章Prompt
  • 5分钟快速上手:文泉驿微米黑字体跨平台安装完整指南
  • 视频水印强力清除完整指南:三步实现专业级处理效果
  • 文泉驿微米黑:轻量级开源中文字体的完美使用指南
  • ncmdumpGUI:NCM文件解密与格式转换完整指南
  • SMUDebugTool终极指南:5步掌握AMD Ryzen处理器硬件调试
  • AMD Ryzen SDT调试工具完整指南:从硬件监控到性能优化的终极解决方案
  • ComfyUI-Florence2视觉AI模型完整使用指南:5分钟掌握多任务视觉处理
  • Zeppelin - Installation
  • SMUDebugTool终极指南:掌握AMD Ryzen性能调优与系统监控
  • Java计算机毕设之基于Springboot+mysql的应急救援物资管理系统设计与实现基于springboot的救援物资管理系统的设计与实现(完整前后端代码+说明文档+LW,调试定制等)
  • AMD Ryzen专业调试工具:全方位掌控硬件底层参数
  • MouseTester终极使用教程:5分钟掌握专业鼠标性能测试技巧
  • 零基础也能懂的AUTOSAR软件开发原理概述
  • 智能家居场景模式设置:图文并茂的新手教程
  • 如何用TPFanCtrl2彻底解决ThinkPad风扇噪音问题
  • 终极免费AI视频字幕去除神器:快速清理硬字幕完整指南
  • 如何进行微服务测试?