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

QOJ 14601

QOJ 14601

洛谷 P14280

看起来没什么思路,不妨推推样例,从局部入手。

对于一个以 \(u\) 为根的子树,插入方式就是:插入一个到左子树 、交换左右儿子、插入到左子树……

设插入到的子树是 \(u\) 最终的左儿子(L)/右儿子(R),则这个子树的插入序列一定是 uLRLR...L(1) / uRLRL...L(2),看起来插入方式是比较固定的。

但还有一种情况,就是最开始有一个子树,然后插入 \(u\) 后成为 \(u\) 的左子树。于是又多了两种方式:LLL...LuRLRL...L(3) / RRR...RuLRLR...L(4),最开头的连续的 L/R 个数可以由左右儿子子树的大小确定。

于是这个题的思路就出来了,对于 \(u\) 的子树,先求出左右儿子对应的最小和最大字典序。然后枚举 \(4\) 种情况求解。

\(d = 左子树大小 - 右子树大小\)

  • \(d \ge 2\),只可能是情况 \(3\)
  • \(d \le -1\),只可能是情况 \(4\)
  • \(d = 0\),最小字典序对应情况 \(2\),最大字典序对应 \(4\)(最开头只有 \(1\)R,相当于 u, R 交换一下)。
  • \(d = 1\),最小字典序对应情况 \(1\),最大对应情况 \(3\)

具体操作方面,碰到一个 L 就取出左子树序列的第一个,R 取出右子树序列的第一个即可。

直接做是 \(O(n^2)\),但是我们只需要让子树 \(u\) 的代价之和轻儿子有关就是 \(O(n \log n)\) 的,所以直接把连续的 L/R 继承下来即可。

这个题看起来没什么思路,可以尝试从局部入手,分析可能的插入情况,多推推样例。

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

相关文章:

  • DETR目标检测实战:用PyTorch从零搭建你的第一个Transformer检测模型
  • 启用 Hyper-V
  • 为什么你的多模态模型在仿真中跑分99.2%,实车却触发127次紧急接管?:基于200万km真实路测数据的跨域泛化失效根因图谱
  • 快速上手Gemma-3-12B-IT聊天助手:WebUI部署与使用技巧
  • 3步搞定微信聊天记录永久备份:WeChatExporter让珍贵回忆永不丢失
  • 2026年AI编程实战指南:三大工具深度对比与选型建议
  • golang如何监听以太坊事件日志_golang以太坊事件日志监听技巧
  • 如何在5分钟内部署完整的PPTist在线演示文稿编辑器
  • 执医刷题封神APP|2026实测不踩坑,碎片化时间也能冲高分 - 品牌测评鉴赏家
  • 深入解析无感无刷电机电调:从KV值到PWM信号,手把手教你用STM32定时器实现精准调速
  • 【RK3588】正点原子开发板资料全解析:从SDK到镜像一站式指南
  • C#怎么限制文本框只能输入中文_C#如何应用正则表达式【妙招】
  • Winform部署HalconAI深度学习模型
  • 如何15分钟内快速集成Claude Code技能自动激活系统
  • 接口的综合案例
  • 解决网页文本选中后换行符丢失导致段落数统计错误的问题
  • 3个理由告诉你为什么MPC-HC仍是Windows平台最佳媒体播放器
  • 如何快速集成免费实时汇率API到你的应用
  • 智能待办工具推荐支持多端同步提醒很贴心
  • 安卓手机离线运行deepseek大模型:Termux与ollama实战指南
  • 2026执医备考|不踩坑资料清单,小白/在职党直接抄作业 - 品牌测评鉴赏家
  • MongooseIM性能测试实践:如何验证你的XMPP服务器承载能力
  • Halcon深度学习之异常检测
  • AI Agent 如何自我进化?Hermes Agent Self-Evolution 深度解析
  • 测试服务器端口能否访问(使用telnet命令)
  • LED 隧道灯选型避坑:国标检验要求及注意事项
  • 基于fluent的SLM过程模拟技术研究:深度解析案例、热源UDF与粉末导入应用细节
  • 【JAVA基础面经】Java线程中的用户态和内核态
  • 论文ai率太高怎么办?盘点5款好用的降ai率工具(学姐亲测附使用教程)
  • 2026执医培训推荐指南|博主亲测,小白/在职党直接抄作业 - 品牌测评鉴赏家